Page 1 sur 1
Structure des gadget PB
Publié : sam. 15/oct./2005 13:33
par Ulix
Boujours a tous,
Une question que je me pose depuis un certain temps, mais je n'est pas trouvé de réponce !
Les gadgets du PB ont-ils une structure, et si oui peut-on y accédé et les utilisé. Certains langage le permette, je n'est rien trouvé de pareil en PB.
Merci d'avance

Publié : sam. 15/oct./2005 13:58
par Dr. Dri
regarde dans le dossier library sdk
le fichier purebasic library descriptor
et cherche aussi sur le forum francais, denis avais déjà parlé de ca
Dri
Publié : sam. 15/oct./2005 16:24
par Ulix
Merci,
j'ai effectivement regardé le fichier "library descriptor.txt"
et j'y est trouvé de plus approchant par rappport a mon interrogation
ceci :
Code : Tout sélectionner
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
Or je pensais y trouvé non pas une structure de fonction, mais plutôt une structure de propriété, comme celle-ci par exemple :
Code : Tout sélectionner
Structure GadgetObjet
Nom.s
PositionX.l
PositionY.l
Texte.s
Etc...
EndStructure
De tel structure sur les gadgets existe-t-elle ?
Si oui, comment y accédé directement
Merci d'avance !

Publié : sam. 15/oct./2005 16:35
par nico
Je crois savoir que la fonction IsGadget renvoie un pointeur sur la structure.
Publié : sam. 15/oct./2005 16:57
par nico
Un exemple du forum Allemand:
Code : Tout sélectionner
Structure GadgetFunctions
FreeGadget.l
GetGadgetState.l
SetGadgetState.l
GetGadgetText.l
SetGadgetText.l
AddGadgetItem.l
AddGadgetItem2.l
RemoveGadgetItem.l
ClearGadgetItemList.l
ResizeGadget.l
CountGadgetItems.l
GetGadgetItemState.l
SetGadgetItemState.l
GetGadgetItemText.l
SetGadgetItemText.l
OpenGadgetList2.l
GadgetX.l
GadgetY.l
GadgetWidth.l
GadgetHeight.l
HideGadget.l
EndStructure
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
Procedure.l GetGadgetStructure(GadgetID)
GadgetID(GadgetID)
!MOV Eax, Edx
ProcedureReturn
EndProcedure
;{ MyTextSetGadgetText
Global *Gadget.PB_GadgetStructure, Text.s
Goto MyTextSetGadgetText_End
MyTextSetGadgetText:
!LEA Eax, dword[Esp+4]
!MOV dword[p_Gadget],Eax
!MOV Eax, dword[Esp+8]
!MOV dword[v_Text],Eax
SetWindowText_(*Gadget\Gadget,":P")
!RET 08
MyTextSetGadgetText_End:;}
CreateGadgetList(OpenWindow(0,0,0,200,200,#PB_Window_ScreenCentered|#PB_Window_SystemMenu,""))
TextGadget(0,90,90,20,20,"~")
*Gadget.PB_GadgetStructure = GetGadgetStructure(0)
Debug *Gadget\Gadget
Debug GadgetID(0)
*Gadget\VirtualTable\SetGadgetText = ?MyTextSetGadgetText
SetGadgetText(0,":)")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit
Publié : sam. 15/oct./2005 18:44
par Ulix
Merci Nico, je n'aurais jamais trouvé sur le site allemand. Merci encore
