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
» Logiciel de planétarium.
Une barre de lancement rapide Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Une barre de lancement rapide Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Une barre de lancement rapide Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Une barre de lancement rapide Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Une barre de lancement rapide Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Une barre de lancement rapide Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Une barre de lancement rapide Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Une barre de lancement rapide Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Une barre de lancement rapide Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Une barre de lancement rapide Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Une barre de lancement rapide Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Une barre de lancement rapide Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Une barre de lancement rapide Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Une barre de lancement rapide Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Une barre de lancement rapide Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-17%
Le deal à ne pas rater :
(Black Friday) Apple watch Apple SE GPS + Cellular 44mm (plusieurs ...
249 € 299 €
Voir le deal

 

 Une barre de lancement rapide

Aller en bas 
5 participants
AuteurMessage
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
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 : 52
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 : 7112
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 : 56
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 : 56
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 : 56
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 : 5950
Age : 70
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
-
» Barre de lancement
» Jeu Code Barre
» 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: