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 ! :oops:

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

:lol:

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 ! :wink:

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 :wink: