Structure des gadget PB

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ulix
Messages : 315
Inscription : ven. 04/juin/2004 14:27
Localisation : Frontignan

Structure des gadget PB

Message 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:
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message 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
Avatar de l’utilisateur
Ulix
Messages : 315
Inscription : ven. 04/juin/2004 14:27
Localisation : Frontignan

Message 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:
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Je crois savoir que la fonction IsGadget renvoie un pointeur sur la structure.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message 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 
Avatar de l’utilisateur
Ulix
Messages : 315
Inscription : ven. 04/juin/2004 14:27
Localisation : Frontignan

Message par Ulix »

Merci Nico, je n'aurais jamais trouvé sur le site allemand. Merci encore :wink:
Répondre