eddymaue Canada Membre Simple # 0000000075 enregistré le 26/10/2004 Maue Eddy j8j 8j8 Gatineau de la société Formatek Fiche personnelle
Note des membres 19/20 1 vote
Contributions > 01 - PRG : Programmation
Afficher un popup avec une toolbar
# 0000000461
ajouté le 27/07/2007 22:13:26 et modifié le 28/07/2007
consulté 9031 fois
Niveau
débutant
Version(s) Foxpro : VFP 9.0 VFP 8.0 VFP 7.0
Description
Comment afficher un popup avec une toolbar.
Au début ça parut simple mais je fus vite confronté au fait que si la toolbar
est docké, le popup ne suis pas facilement.
Donc pour contourner le problème, il suffit simplement d'activer le popup dans
un formulaire avec desktop = 1. Le formulaire n’a même pas besoin d'être
visible. C'est simplement une façon de sortir le popup de l’environnement.
Donc on peut docker à gauche, en haut et à droite, ca fonctionne nickel.
Pour ce qui est de docker en bas, malheureuse, ca ne
fonctionne pas bien.
Mais au moins ¾ sans problème.
Autre point intéressant, regarder comment je récupère la hauteur et la largeur des textes à afficher.
Avec Vfp 9 et les autres versions je ne sais pas
J'affecte le fontname et fontsize à un objet formulaire et up je récupère mes valeurs dans TextWidth, TextHeight. C'est nickel et sans erreurs.
Code source :
Public otlb AsToolbar
m.otlb = Createobject("tbFenetres")
m.otlb.Show
Private o
o = This.oSource Deactivate Popup raccourci Define Popup raccourci SHORTCUTRelativeFontThisform.FontName ,Thisform.FontSize
For i = 1 ToAlen(o.aTextBar)
dobar = [Define Bar ]+Transform(i)+[ Of raccourci Prompt "]+o.aTextBar(i)+["]
&dobar Endfor
OnSelectionBar 1 Of raccourci o.Dock(-1) OnSelectionBar 2 Of raccourci o.Dock(0) OnSelectionBar 3 Of raccourci o.Dock(1) OnSelectionBar 4 Of raccourci o.Dock(2) OnSelectionBar 5 Of raccourci o.Dock(3)
Il suffit de définir un popup comme ceci pour que cela fonctionne :
DEACTIVATE POPUP raccourci DEFINE POPUP raccourci SHORTCUT RELATIVE DEFINE BAR 1 OF raccourci PROMPT "Option de menu contextuel" ON SELECTION BAR 1 OF raccourci DO monprogramme oCalpop = CREATEOBJECT("calage_popup") oCalpop.Show()
Encore bravo et merci pour ce code qui m'a bien aidé !!!
A+
le 02/08/2007, eddymaue a écrit : Salut Miki, ton code fonctionne très bien si on a un seul écran sur l'ordi. Mais chez moi j'en ai 2, ce qui fait que j'ai un débordement sur la droite. Il faut au minimum tenir compte de la position lorsqu'on affiche la droite de l'écran.
Merci Eddy, je regarde ça de ce pas ! :)