| BUTTON& | fonction |
Syntaxe : btnHndl& = BUTTON&(btnID&|%)
Révision : Février 2002 (Release 6)
Description : Pour le bouton ou la barre de défilement (de la fenêtre courante) spécifié par btnID% ou btnID& (avec le runtime Appearance), cette fonction renvoie un handle pointant sur le “record de contrôle” (control record) de ce bouton. Le “record de contrôle” contient des informations concernant le bouton comme son rectangle, son état, son titre, etc. (Voyez le chapitre Control Manager dans Inside Macintosh: Macintosh Toolbox Essentials, pour les détails). Une fois le handle obtenu, vous pouvez accéder aux divers champs du record comme suit :
FB^3 (runtime Standard) utilise le champ RefCon (btnHndl&..contrlRfCon&) pour conserver des informations concernant le contrôle, telles que son type, son numéro identifiant, son drapeau d’activation, et pour les barres de défilement, la valeur d’incrément de page. Ceci n’est valable que pour les contrôles créés à l’aide des commandes BUTTON ou SCROLL BUTTON. Vous pouvez accéder à ces informations comme suit : refCon& = btnHndl&..contrlRfCon&
typeControle = (refCon& AND &E0000000) >> 29 ‘bits 29-31 IDControle = (refCon& AND &1FFF0000) >> 16 ‘bits 16-28 inactif = (refCon& AND &8000) <> 0 ‘bit 15 incrPage = (refCon& AND &7FFF) ‘bits 0-14 Note : Les techniques traditionnelles montrées ci-dessus ne sont plus valables avec Carbon du fait que le “record de contrôle” est devenu une structure opaque dans cet environnement. On ne peut donc accéder à ses valeurs et propriétés qu’au moyen de fonctions spécifiques de la Toolbox dites accesseurs (getter et setter). Ces fonctions sont également disponibles en compilation PPC.
Pour nextControl voir exemple “Imprimer contenu fenêtre” sur le CD. contrlOwner = FN GetControlOwner( btnHndl& )
rectPtr& = FN GetControlBounds( btnHndl&, contrlRect ) SetControlBounds( btnHndl&, contrlRect ) Fonctions associées :
MoveControl( btnHndl&, horizontal, vertical )
SizeControl( btnHndl&, largeur, hauteur ) contrlVis = FN IsControlVisible( btnHndl& ) err = FN SetControlVisibility( btnHndl&,contrlVis,doDraw ) Fonctions associées :
ShowControl( btnHndl& )
HideControl( btnHndl& ) contrlHilite = FN GetControlHilite( btnHndl& ) isContrlHilite = FN IsControlHilited( btnHndl& ) HiliteControl( ControlRef, hiliteState ) err = FN ActivateControl( btnHndl& ) err = FN DeactivateControl( btnHndl& ) isContrlActive = FN IsControlActive( btnHndl& ) contrlValue = FN GetControlValue( btnHndl& ) SetControlValue( btnHndl&, contrlValue ) contrlMin = FN GetControlMinimum( btnHndl& ) SetControlMinimum( btnHndl&, contrlMin ) contrlMax = FN GetControlMaximum( btnHndl& ) SetControlMaximum( btnHndl&, contrlMax ) contrlData& = FN GetControlDataHandle( btnHndl& ) SetControlDataHandle( btnHndl&, contrlData& ) contrlAction& = FN GetControlAction( btnHndl& ) SetControlAction( btnHndl&, contrlAction& ) contrlRfCon& = FN GetControlReference( btnHndl& ) SetControlReference( btnHndl&, contrlRfCon& ) GetControlTitle( btnHndl&, contrlTitle$ ) SetControlTitle( btnHndl&, contrlTitle$ ) Note : Votre programme ne doit pas libérer les handles retournés par la fonction BUTTON& (i.e. n’utilisez pas DEF DISPOSEH(btnHndl&)). Le handle est automatiquement libéré à la fermeture du bouton (BUTTON CLOSE) ou à la fermeture de la fenêtre dans laquelle il réside.
Note : Le runtime FB^3 adapté à l’Appearance Manager utilise le champ RefCon pour stocker un handle contenant des informations additionnelles. Le format de ce handle peut être examiné avec la définition de record qui suit (extraite du fichier header RnTm Appearance.GLBL. BEGIN RECORD FBcontrolDescription
DIM FBcontrolRef AS LONG // numéro de référence FB pour les boutons et leschamps texte ou image BEGIN UNION DIM FBcontrolMin AS LONG DIM FBefJustClass AS LONG END UNION DIM FBcontrolMax AS LONG DIM FBcontrolInitVal AS LONG DIM FBTempRefCon AS LONG // CDEF nécessite un champ refcon spécial DIM FBcontrolPage AS LONG // pour les ascenseurs DIM FBefLinkcHndl AS HANDLE // liés à un champ (0 si aucun) BEGIN UNION DIM FBteHndl AS HANDLE // TEHandle du champ lié (0 si aucun) DIM FBPictHndl AS HANDLE // handle Pict d’un champ image END UNION DIM FBcustOnEdit AS PTR // pour vecteur ON EDIT personnalisé DIM FBcontrolClass AS SHORT // bouton, champ, image.. DIM FBcntrlSubclass AS SHORT // genre de bouton ou de champ DIM FBefBackPat AS RGBColor DIM FBefBackColor AS RGBColor BEGIN UNION DIM FBpfJust AS BYTE DIM FBefReturnOK AS BOOLEAN END UNION BEGIN UNION DIM FBTransparent AS BOOLEAN // pour champ image DIM FBhasFocus AS BOOLEAN // pour gestionnaire de champ END UNION BEGIN UNION DIM FBteActive AS BOOLEAN // voir EFActivateText DIM FBClickReverse AS BOOLEAN // pour champ image END UNION DIM FBNoDrawFocus AS BOOLEAN // voir FBdrawFocusAndFrame DIM FBcntrlFramed AS BYTE // pour gestionnaire champ texte ou image DIM FBpaletteEF AS BOOLEAN // champ dans palette DIM FBefAutoGray AS BOOLEAN // grayishTextOr utilisé quand la fenêtre est inactive BEGIN UNION // ou un champ désactivé == panneau inactif DIM FBefDisabled AS BOOLEAN // garde inactif texte grayishTextOr DIM legacyValue AS BOOLEAN // ancienne syntaxe BUTTON END UNION DIM & END RECORD Voir Aussi : |