| DEF EMBEDBUTTON | commande |
Syntaxe : DEF EMBEDBUTTON(boutonFilsID&, boutonPereID&)
Révision : Février 2002 (Release 6)
Description : L’Appearance Manager peut imbriquer plusieurs boutons ou sous-contrôles (sub controls) à l’intérieur d’un bouton-père ou super contrôle (super control). En fait, des boutons peuvent être imbriqués dans des boutons qui sont à leur tour imbriqués. Les avantages sont importants. Par exemple, chaque fenêtre dispose d’un contrôle-racine (root control). Tous les boutons de la fenêtre sont imbriqués dans ce bouton-racine ou dans l’un de ses boutons-fils. Lorsque la fenêtre est rendue inactive, le contrôle-racine est désactivé. Avec une simple commande (implémentée dans le runtime FB) tous les autres contrôles de la fenêtre sont automatiquement désactivés.
Cette faculté s’étend aux boutons à onglets et aux groupements de boutons dont les éléments constituants peuvent être affichés ou masqués avec une simple commande. Exemple : L’exemple suivant crée un groupement de boutons radio et imbrique chaque bouton individuellement dans le super-contrôle. Vous pouvez ainsi interroger le bouton de groupe pour connaître lequel de ses sous-contrôles est effectivement sélectionné.
DIM AS RECT r, pR DIM AS HANDLE h DIM AS LONG bRef DIM AS OSErr err // réglage _btnHauteur = 20 _btnLargeur = 80 _btnMarge = 8 bRef = 1 // crée une fenêtre SetRect(r,0,0,_btnLargeur_btnMarge_btnMarge,120) APPEARANCEWINDOW 1,,@r err = FN SetThemeWindowBackground(WINDOW(_wndPointer),_kThemeActiveDialogBackgroundBrush,_zTrue) // le bouton n°1 est le bouton-père // notez que le bouton-père est suffisamment grand // pour contenir les boutons imbriqués SetRect (r,_btnMarge,_btnMarge,_btnMarge_btnLargeur,(_btnMarge_btnHauteur)*3) APPEARANCE BUTTON bRef,_activeBtn,0,0,1,"",@r,_kControlRadioGroupProc bRef ++ SetRect(r,_btnMarge,_btnMarge,_btnMarge_btnLargeur,_btnMarge_btnHauteur) APPEARANCE BUTTON bRef,_activeBtn,0,0,1,"Radio 1",@r,_kControlRadioButtonProc DEF EMBEDBUTTON(bRef,1) bRef ++ : OffsetRect(r,0,_btnHauteur_btnMarge) APPEARANCE BUTTON bRef,_activeBtn,0,0,1,"Radio 2",@r,_kControlRadioButtonProc DEF EMBEDBUTTON(bRef,1) bRef ++ : OffsetRect(r,0,_btnHauteur_btnMarge) APPEARANCE BUTTON bRef,_activeBtn,0,0,1,"Radio 3",@r,_kControlRadioButtonProc DEF EMBEDBUTTON(bRef,1) LOCAL FN GererDialogue DIM AS LONG action,reference action = DIALOG(0) reference = DIALOG(action) LONG IF action = _btnclick MoveTo(8,100) PRINT "Current Button ";BUTTON(1); END IF END FN ON DIALOG FN GererDialogue DO HANDLEEVENTS UNTIL 0 |