IsGadget et GadgetID
IsGadget et GadgetID
IsGadget retourne une valeur différente de 0 si le gadget est initialisé.
Il serait très pratique (pour moi) que IsGadget retourne le GadgetID si l'objet est correctement initialisé ou sinon 0
Il serait très pratique (pour moi) que IsGadget retourne le GadgetID si l'objet est correctement initialisé ou sinon 0
En fait IsGadget() (comme toutes les fonctions IsXX()) fait mieux que ca, il retourne l'adresse de la structure associée à l'objet. Celle du gadget est comme ca:
(elle sont decritent dans le SDK). Donc pour toi tu peux acceder facilement au handle si tu le souhaites.
Code : Tout sélectionner
Structure PB_Gadget
Handle.l
VT.l
Data1.l
Data2.l
EndStructure
Il serait utile de le préciser dans l'aideFred a écrit :En fait IsGadget() (comme toutes les fonctions IsXX()) fait mieux que ca, il retourne l'adresse de la structure associée à l'objet. Celle du gadget est comme ca:
(elle sont decritent dans le SDK). Donc pour toi tu peux acceder facilement au handle si tu le souhaites.Code : Tout sélectionner
Structure PB_Gadget Handle.l VT.l Data1.l Data2.l EndStructure

Elles sont pas dans l'aide mais bon elles sont dans la doc apparament...Fred a écrit :(elle sont decritent dans le SDK). Donc pour toi tu peux acceder facilement au handle si tu le souhaites.
Ce serait bien du chm (ou du html) pour les (longs) fichiers texte comme celui là... Ca permetrait de bien s'y retrouver ^^PureBasic library descriptor.txt a écrit : -----------------------------------------------------------------------
Gadget (Langage: ASM)
------
_PB_Gadget_ObjectsNumber
_PB_Gadget_ObjectsArea
_PB_Gadget_CurrentObject ; Represents the actual GadgetList. There isn't current gadget.
Structure PB_GadgetStructure
Gadget.l ; OS Gadget pointer (HWND)
*VirtualTable.GadgetFunctions
CustomData.l ; Can be used to store extra infos on this gadget
CustomData2.l ; Can be used to store extra infos on this gadget
EndStructure
Structure GadgetFunctions
FreeGadget
GetGadgetState
SetGadgetState
GetGadgetText
SetGadgetText
AddGadgetItem
AddGadgetItem2
RemoveGadgetItem
ClearGadgetItemList
ResizeGadget
CountGadgetItems
GetGadgetItemState
SetGadgetItemState
GetGadgetItemText
SetGadgetItemText
OpenGadgetList2
GadgetX
GadgetY
GadgetWidth
GadgetHeight
HideGadget
EndStructure
Dri
D'ailleurs en fouillant plus loin j'ai trouvé ca :
Dri
Ce qui prouve que c'est aussi laborieux à écrire qu'à lire...-----------------------------------------------------------------------
Menu (Langage: ASM)
----
_PB_Menu_ObjectsNumber
_PB_Menu_ObjectsArea
_PB_Menu_Current ; Current
Structure PB_GadgetStructure
Menu.l ; OS Menu pointer (HMENU)
Window.l ; OS Window pointer on which the menu has been created (HWINDOW)
EndStructure
Dri
Merci Fred, j'ai juste à écrire ma petite procedure qui va bienFred a écrit :En fait IsGadget() (comme toutes les fonctions IsXX()) fait mieux que ca, il retourne l'adresse de la structure associée à l'objet. Celle du gadget est comme ca:
(elle sont decritent dans le SDK). Donc pour toi tu peux acceder facilement au handle si tu le souhaites.Code : Tout sélectionner
Structure PB_Gadget Handle.l VT.l Data1.l Data2.l EndStructure

as-tu regardé ce post ?
http://purebasic.hmt-forum.com/viewtopic.php?t=3285
Pour ceux que ça intéresse, voici une commande qui s'appelle
IsGadgetID(#Gadget) et qui retourne 0 si le gadget n'est pas initialisé sinon elle retourne GadgetID(#Gadget), en une seule commande
voici le code asm
et le contenu du fichier descripteur qui va avec
et voici le lien de cette mini librairie appelée Divers, à mettre dans le dossier PureBasic\PureLibraries\UserLibraries
c'est ici
IsGadgetID(#Gadget) et qui retourne 0 si le gadget n'est pas initialisé sinon elle retourne GadgetID(#Gadget), en une seule commande
voici le code asm
Code : Tout sélectionner
format MS COFF
public PB_IsGadgetID
extrn _PB_IsGadget@4
section '.text' code readable executable
PB_IsGadgetID:
PUSH eax ; ID static
CALL _PB_IsGadget@4
TEST eax,eax
JZ _Retour
MOV eax, [eax]
_Retour:
RET
Code : Tout sélectionner
; Langage utilisé pour coder la librairie ASM ou C
ASM
; Nombre de Dll windows utilisées par la lib
0
; Type de librairie
LIB
; Nombre de librairies PureBasic utilisé par la librairie
1
GadgetExtension
; Nom du fichier d'aide de notre libraire, OBLIGATOIRE !
IsGadgetID.chm
; Enumération des nouvelles fonctions crées
IsGadgetID, Long, ()
Long
c'est ici