FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» trop de fichiers en cours
Une barre de lancement rapide Emptypar Marc Aujourd'hui à 11:42

» Bataille navale SM
Une barre de lancement rapide Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
Une barre de lancement rapide Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
Une barre de lancement rapide Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Une barre de lancement rapide Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Une barre de lancement rapide Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Une barre de lancement rapide Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Une barre de lancement rapide Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Une barre de lancement rapide Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Une barre de lancement rapide Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
Une barre de lancement rapide Emptypar leclode Dim 21 Avr 2024 - 18:09

» 2D_fill_color(résolu)
Une barre de lancement rapide Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Une barre de lancement rapide Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Une barre de lancement rapide Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Une barre de lancement rapide Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment : -21%
LEGO® Icons 10329 Les Plantes Miniatures, ...
Voir le deal
39.59 €

 

 Une barre de lancement rapide

Aller en bas 
5 participants
AuteurMessage
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Une barre de lancement rapide Empty
MessageSujet: Une barre de lancement rapide   Une barre de lancement rapide EmptyLun 18 Juin 2012 - 11:48

Bonjour,

Je me suis créer pour le fun, une barre de lancement rapide
genre Rocket Dock mais en light Wink

Pour cela j'utilise 2 dll : form.dll et mouse.dll (dispo sur mon site)

Donc le programme, au démarrage, charge un fichier qui s'appelle util.txt
dedans on retrouve ceci: (vous pouvez rajouter autant de lignes que vous voulez)
Code:
notepad.exe|Bloc note
calc.exe|Calculatrice

Le formulaire, par défaut, est caché à gauche de l'écran.
Lorsque l'on approche la souris vers cette zone, la barre d'outil apparait.
Cela permet de pouvoir lancer rapidement les programmes que l'on a définis dans util.txt

Pour l'instant, il n'y a aucune sécurité...et c'est certainement perfectible. Wink

Code:
' Mise en place du Form 0
DIM SysH, SysW : SysH = 20 : SysW = 150 : ' dimensions des boutons
LABEL ErrProg: ON_ERROR_GOTO ErrProg
HIDE 0 : WIDTH 0, SysW+5 : TOP 0, 0 : LEFT 0, 0 : BORDER_HIDE 0
DIM retour : DLL_ON DIR_CURRENT$ + "\form.dll"
retour = DLL_CALL1("SetTopMost", HANDLE(0)) : ' La barre doit être toujours au 1er plan
DLL_OFF

DLL_ON DIR_CURRENT$ + "\mouse.dll"
DIM coord$, txt$ : coord$=STRING$(8," ")
DIM mx, my : ' coordonnées de la souris

DIM bStat, bMemStat : bStat = 0 : ' Etat de la barre (0 cachée, 1 visible)
DIM bExit : bExit = 1000
DIM bList : bList = 1001
DIM bTimer: bTimer= 1002

LABEL pEndProg  : ' on quitte le programme
LABEL pMouse    : ' routine executée par le timer (coordonnées de la souris)
LABEL pAction  : ' Evenement bouton
LABEL ShowBar, HideBar
' Bouton de fermeture du prog
BUTTON bExit : HEIGHT bExit, SysH : WIDTH bExit, SysW : LEFT bExit, 5
ON_CLICK bExit, pEndProg : CAPTION bExit, "Quitter"

' on charge la liste des utilitaires de la barre de lancement
DLIST 1001 : FILE_LOAD 1001, DIR_CURRENT$ + "\util.txt"

' initialisation des boutons
DIM i, a$,bouton(50), action$(50)
FOR i=1 TO COUNT(bList)
  BUTTON i: TOP i, i * (SysH + 5) : WIDTH i, SysW : HEIGHT i, SysH : LEFT i, 5
  a$ = ITEM_READ$(bList, i)
  action$(i) = LEFT$(a$, INSTR(a$, "|") - 1)
  CAPTION i, RIGHT$(a$, LEN(a$) - LEN(action$(i)) - 1)
  ON_CLICK i, pAction
NEXT i
' hauteur du formulaire
HEIGHT 0, i * (SysH + 5) : TOP 0, (SCREEN_Y + HEIGHT(0)) / 2

TIMER bTimer : TIMER_INTERVAL bTimer, 100 : ON_TIMER bTimer, pMouse
GOSUB HideBar : SHOW 0
END

pAction:
 EXECUTE action$(NUMBER_CLICK)
RETURN

pEndProg:
  DLL_OFF
  TERMINATE
RETURN

pMouse:
  retour = DLL_CALL1("GetMouseXY",ADR(coord$))
  mx = VAL(LEFT$(coord$,4)) : my = VAL(RIGHT$(coord$,4))
  bMemStat = bStat
  IF bStat = 1
    IF mx > WIDTH(0) THEN bStat = 0
  ELSE
    IF mx < 2 THEN bStat = 1
  END_IF
  IF bMemStat <> bStat
    SELECT bStat
      CASE 0: GOSUB HideBar
      CASE 1: GOSUB ShowBar
    END_SELECT
  END_IF
RETURN

ShowBar:
  TIMER_OFF bTimer
  WHILE LEFT(0)<0
  LEFT 0, LEFT(0) + 8 : PAUSE 1
  END_WHILE
  TIMER_ON bTimer
RETURN
HideBar:
  TIMER_OFF bTimer
  WHILE LEFT(0) > SysW*(-1)
    LEFT 0,LEFT(0) - 8 : PAUSE 1
  END_WHILE
  TIMER_ON bTimer
RETURN
ErrProg:
  MESSAGE "("+STR$(ERROR_NUMBER)+") "+ERROR_TYPE$+" line:"+STR$(ERROR_LINE)
  DLL_OFF
TERMINATE

EDIT 16h31 : Debug + modif...

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Une barre de lancement rapide Empty
MessageSujet: Re: Une barre de lancement rapide   Une barre de lancement rapide EmptyLun 18 Juin 2012 - 20:56

Tu n'as pas eu beaucoup de commentaires, mais il est très bien ton lanceur Wink
On pourrait même y mettre le système de post-it de lodchjo mais bon ce n'est pas le sujet, là, c'est le principe du menu qui apparait et qui permet de lancer ce que l'on veut et ça marche très bien.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Une barre de lancement rapide Empty
MessageSujet: Re: Une barre de lancement rapide   Une barre de lancement rapide EmptyLun 18 Juin 2012 - 22:15

C'est certes une bonne idée, je me suis déjà fait quelque chose du même genre pour mon confort personnel, mais en moins sophistiqué.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Une barre de lancement rapide Empty
MessageSujet: Re: Une barre de lancement rapide   Une barre de lancement rapide EmptyLun 18 Juin 2012 - 23:29

C'est pas grand chose mais des fois cela peut être utile sans avoir à installer RocketDock et autres utilitaires du même genre.
A la place des boutons on peut très bien imaginer des pictures avec changement de couleur lors d'un survol...
J'avais appliqué ce principe pour les boutons de la barre d'outils dans mon prog d'analyse de fichier log (voir ici)
Avec les futurs(?) boutons bitmap, cela pourrait aussi devenir sympa... Smile

Revenir en haut Aller en bas
http://nardo26.lescigales.org
ambroise




Nombre de messages : 264
Localisation : Haute-Savoie
Date d'inscription : 29/04/2012

Une barre de lancement rapide Empty
MessageSujet: Re: Une barre de lancement rapide   Une barre de lancement rapide EmptyMar 19 Juin 2012 - 20:22

J'apprécie... et j'étudie le code !
Revenir en haut Aller en bas
http://genealogie.cwebh.org/index.html
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Une barre de lancement rapide Empty
MessageSujet: Re: Une barre de lancement rapide   Une barre de lancement rapide EmptyMer 20 Juin 2012 - 8:48

Je pense qu'en s'inspirant de ceci pour les boutons et de cela pour le "mouseover" on doit arriver à quelque chose de sympa... Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Une barre de lancement rapide Empty
MessageSujet: Re: Une barre de lancement rapide   Une barre de lancement rapide EmptyJeu 21 Juin 2012 - 1:24

Bon Soir/Jour,
Petite modif du programme suite aux remarques précédentes.
Le fichier de définition (PanoDock.txt) s’écrit maintenant comme ceci:
Code:
notepad.exe|Bloc note|225|200|200
calc.exe|Calculatrice|200|225|200
C:\Progra~1\WinSCP\WinSCP.exe|WinSCP|200|200|225
explorer.exe|Explorer|225|200|200
http://panoramic.1fr1.net|Forum Panoramic|200|225|200
J'ai rajouté les valeurs RVB pour les boutons

Le programme:
Code:
' Mise en place du Form 0
DIM SysH, SysW : SysH = 40 : SysW = 150 : ' dimensions des boutons
LABEL ErrProg: ON_ERROR_GOTO ErrProg
HIDE 0 : WIDTH 0, SysW+5 : TOP 0, 0 : LEFT 0, 0 : BORDER_HIDE 0
DIM retour : DLL_ON DIR_CURRENT$ + "\form.dll"
retour = DLL_CALL1("SetTopMost", HANDLE(0)) : ' La barre doit être toujours au 1er plan
DLL_OFF

DLL_ON DIR_CURRENT$ + "\mouse.dll"
DIM coord$, txt$ : coord$=STRING$(8," ")
DIM mx, my : ' coordonnées de la souris

DIM bStat, bMemStat : bStat = 0 : ' Etat de la barre (0 cachée, 1 visible)
DIM bExit : bExit = 1000
DIM bList : bList = 1001
DIM bTimer: bTimer= 1002

LABEL pEndProg  : ' on quitte le programme
LABEL pMouse    : ' routine executée par le timer (coordonnées de la souris)
LABEL pAction  : ' Evenement bouton
LABEL ShowBar, HideBar
LABEL CreateButton
' Bouton de fermeture du prog
BUTTON bExit : HEIGHT bExit, SysH : WIDTH bExit, SysW : LEFT bExit, 5
ON_CLICK bExit, pEndProg : CAPTION bExit, "Quitter"

' on charge la liste des utilitaires de la barre de lancement
DLIST 1001 : FILE_LOAD 1001, DIR_CURRENT$ + "\PanoDock.txt"

' initialisation des boutons
DIM N,j,k, Obj$,Obj_param$
DIM Obj_action$(50)
DIM Obj_caption$(50)
DIM Obj_red(50),Obj_green(50),Obj_blue(50)
FOR N=1 TO COUNT(bList)
  Obj$ = ITEM_READ$(bList, N)
  k=0:Obj_param$=""
  FOR j=1 TO LEN(Obj$)
    IF MID$(Obj$,j,1)="|" OR j=LEN(Obj$)
      IF j=LEN(Obj$) THEN Obj_param$=Obj_param$+MID$(Obj$,j,1)
      SELECT k
        CASE 0:Obj_action$(N)=Obj_param$
        CASE 1:Obj_caption$(N)=Obj_param$
        CASE 2:Obj_red(N)=VAL(Obj_param$)
        CASE 3:Obj_green(N)=VAL(Obj_param$)
        CASE 4:Obj_blue(N)=VAL(Obj_param$)
      END_SELECT
      k=k+1
      Obj_param$=""
    ELSE
      Obj_param$=Obj_param$+MID$(Obj$,j,1)
    END_IF
  NEXT j
  GOSUB CreateButton
NEXT N
DIM nObj,nOldObj

' hauteur du formulaire
HEIGHT 0, N * (SysH + 5) : TOP 0, (SCREEN_Y - HEIGHT(0)) / 2
TIMER bTimer : TIMER_INTERVAL bTimer, 100 : ON_TIMER bTimer, pMouse
GOSUB HideBar : SHOW 0
END


CreateButton:
  PICTURE N : WIDTH N, SysW : HEIGHT N, SysH
  TOP N, N * (SysH + 5) : LEFT N, 5
  2D_TARGET_IS N
  2D_PEN_COLOR Obj_red(N)-50,Obj_green(N)-50,Obj_blue(N)-50
  2D_FILL_COLOR Obj_red(N),Obj_green(N),Obj_blue(N)
  2D_RECTANGLE 0, 0, SysW, SysH
  2D_PEN_COLOR 255,255,255: 2D_LINE 0,0,SysW,0: 2D_LINE 0,0,0,SysH
  PRINT_TARGET_IS N: FONT_NAME N, "Arial": FONT_SIZE N, 10
  PRINT_LOCATE (SysW-TEXT_WIDTH(Obj_caption$(N),N))/2,(SysH-TEXT_HEIGHT(Obj_caption$(N),N))/2:print Obj_caption$(N)
  ON_CLICK N,pAction
RETURN

pAction:
  TIMER_OFF bTimer
  DIM r,g,b
  ' Dessine l'enfoncement du bouton
  PRINT_TARGET_IS NUMBER_CLICK
  r=Obj_red(NUMBER_CLICK):g=Obj_green(NUMBER_CLICK):b=Obj_blue(NUMBER_CLICK)
  2D_TARGET_IS NUMBER_CLICK
  2D_PEN_COLOR r-150,g-150,b-150: 2D_FILL_COLOR r,g,b
  2D_RECTANGLE 0, 0, SysW, SysH
  2D_PEN_COLOR 255,255,255: 2D_LINE 0,SysH-1,SysW-1,SysH-1: 2D_LINE SysW-1,SysH-1,SysW-1,0
  PRINT_LOCATE 1+(SysW-TEXT_WIDTH(Obj_caption$(NUMBER_CLICK),NUMBER_CLICK))/2,1+(SysH-TEXT_HEIGHT(Obj_caption$(NUMBER_CLICK),NUMBER_CLICK))/2:print Obj_caption$(NUMBER_CLICK)
  PAUSE 500
  ' retour du bouton dans son état normal
  2D_TARGET_IS NUMBER_CLICK: 2D_PEN_COLOR r-150,g-150,b-150: 2D_FILL_COLOR r,g,b
  2D_RECTANGLE 0, 0, SysW, SysH
  2D_PEN_COLOR 255,255,255: 2D_LINE 0,0,SysW,0: 2D_LINE 0,0,0,SysH
  PRINT_LOCATE (SysW-TEXT_WIDTH(Obj_caption$(NUMBER_CLICK),NUMBER_CLICK))/2,(SysH-TEXT_HEIGHT(Obj_caption$(NUMBER_CLICK),NUMBER_CLICK))/2:print Obj_caption$(NUMBER_CLICK)
  EXECUTE Obj_action$(NUMBER_CLICK)
  TIMER_ON bTimer
  FREE r:FREE g:FREE b
RETURN

pEndProg:
  DLL_OFF
  TERMINATE
RETURN

pMouse:
  retour = DLL_CALL1("GetMouseXY",ADR(coord$))
  mx = VAL(LEFT$(coord$,4)) : my = VAL(RIGHT$(coord$,4))
  ' Etat de la barre
  bMemStat = bStat
  IF bStat = 1
    IF mx > WIDTH(0) THEN bStat = 0
  ELSE
    IF mx < 2 THEN bStat = 1
  END_IF
  IF bMemStat <> bStat
    SELECT bStat
      CASE 0: GOSUB HideBar
      CASE 1: GOSUB ShowBar
    END_SELECT
  END_IF
  ' Gestion du MouseOver des boutons
  my = my-TOP(0)
  nObj = INT(my/(SysH+5))
  if OBJECT_EXISTS(nObj)=1
    if (mx < (LEFT(0)+LEFT(nObj))) OR (mx>(LEFT(0)+LEFT(nObj)+WIDTH(nObj)))
      nObj = 0
    END_IF
  ELSE
    nObj = 0
  END_IF
  if (nOldObj <> nObj) AND nOldObj<>0
    IF OBJECT_EXISTS(nOldObj)=1
      2D_TARGET_IS nOldObj
      PRINT_TARGET_IS nOldObj
      2D_PEN_COLOR Obj_red(nOldObj)-150,Obj_green(nOldObj)-150,Obj_blue(nOldObj)-150
      2D_FILL_COLOR Obj_red(nOldObj),Obj_green(nOldObj),Obj_blue(nOldObj)
      2D_RECTANGLE 0, 0, SysW, SysH
      2D_PEN_COLOR 255,255,255: 2D_LINE 0,0,SysW,0: 2D_LINE 0,0,0,SysH
      PRINT_LOCATE (SysW-TEXT_WIDTH(Obj_caption$(nOldObj),nOldObj))/2,(SysH-TEXT_HEIGHT(Obj_caption$(nOldObj),nOldObj))/2:print Obj_caption$(nOldObj)
      nOldObj=0
    END_IF
  END_IF
  if nObj <> 0 AND nOldObj=0
    contrast nObj,80
    nOldObj=nObj
  END_IF

RETURN

ShowBar:
  TIMER_OFF bTimer
  WHILE LEFT(0)<0
  LEFT 0, LEFT(0) + 8 : PAUSE 1
  END_WHILE
  TIMER_ON bTimer
RETURN
HideBar:
  TIMER_OFF bTimer
  WHILE LEFT(0) > SysW*(-1)
    LEFT 0,LEFT(0) - 8 : PAUSE 1
  END_WHILE
  TIMER_ON bTimer
RETURN
ErrProg:
  MESSAGE "("+STR$(ERROR_NUMBER)+") "+ERROR_TYPE$+" line:"+STR$(ERROR_LINE)
  DLL_OFF
TERMINATE

Le code est un peu brouillon, mais il fonctionne... Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Une barre de lancement rapide Empty
MessageSujet: Re: Une barre de lancement rapide   Une barre de lancement rapide EmptyJeu 21 Juin 2012 - 7:31

Comme JL35, j'ai un truc du même type mais uniquement pour les sites avec un list dans lequel on peut copier les identifiants et mots de passe. Mais le look n'est pas aussi bon que le tien.

Bravo et A+
Revenir en haut Aller en bas
Contenu sponsorisé





Une barre de lancement rapide Empty
MessageSujet: Re: Une barre de lancement rapide   Une barre de lancement rapide Empty

Revenir en haut Aller en bas
 
Une barre de lancement rapide
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Jeu Code Barre
» Barre de lancement
» Cacher la barre des tâches
» Barre de titre sans les 3 boutons
» majuscule rapide

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: