Bonjour
Es-ce que quelqu'u pourrait m'expliquer comment créer un gadget ainsi que ce qui va avec svp ? (un truc simple du style bouton ou editbox)
Merci d'avance
Création de gadget
Re: Création de gadget
Il y a des exemples dans PureBasic et ici même les tutoriels sont trés bien fait donc ....
Mais pour te faire plaisir un petit programme d'exemple :
Si cela ne répond pas à ton attente soit un peu plus précis dans ta demande !!
Mais pour te faire plaisir un petit programme d'exemple :
Code : Tout sélectionner
Enumeration
#Fenetre
#Bouton
#Chaine
EndEnumeration
Procedure OuvreFenetre()
If OpenWindow(#Fenetre, 470, 102, 387, 194, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Titre de la fenêtre")
If CreateGadgetList(WindowID())
;--------------------------------------------------------------------
ButtonGadget(#Bouton, 150, 80, 80, 30, "Bouton")
;--------------------------------------------------------------------
StringGadget(#Chaine, 40, 40, 300, 20, "Chaine de caractères")
EndIf
EndIf
EndProcedure
Global Compteur
OuvreFenetre()
Repeat
Evenement = WaitWindowEvent()
GadgetNum = EventGadgetID()
If Evenement = #PB_EventGadget
If GadgetNum = #Bouton
Compteur + 1
SetGadgetText(#Chaine,"Vous avez appuyer sur le bouton " + Str(Compteur)+ " fois")
EndIf
EndIf
Until Evenement = #PB_Event_CloseWindow
End
Si cela ne répond pas à ton attente soit un peu plus précis dans ta demande !!
Denis
Bonne Jounée à tous
Bonne Jounée à tous
-
- Messages : 333
- Inscription : sam. 25/juin/2005 11:18
- Localisation : Laon (02)
- Contact :
Oui c'est possible mais pour cela il faut créer une userlibrary en ASM, en C, ou avec Purebasic lui-même grâce à Tailbite.
Tout est déjà prévu pour créer un nouveau gadget ou un codec d'image.
Par exemple avec TailBite, une structure est donnée pour supportée toutes les fonctions purebasic classiques de gestion de gadgets :
Donc, pour l'instant le mieux à faire c'est de télécharger TailBite, et de lire la documentation fournie avec.
Pour l'instant, TailBite n'est réellement compatible qu'avec PB3.94. Il faudra attendre encore peu pour la v4.
Tout est déjà prévu pour créer un nouveau gadget ou un codec d'image.
Par exemple avec TailBite, une structure est donnée pour supportée toutes les fonctions purebasic classiques de gestion de gadgets :
Code : Tout sélectionner
Structure TB_GadgetVT
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
EndStructure
Pour l'instant, TailBite n'est réellement compatible qu'avec PB3.94. Il faudra attendre encore peu pour la v4.
Le cas classique est d'utiliser le Static Control pour en faire un HyperlinkGadget, en cherchant tu peux peut être trouver des exemples aux adresses connues.
Tiens justement un exemple:
Tiens justement un exemple:
Code : Tout sélectionner
; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=2955&highlight=
; Author: Andreas (updated for PB3.92+ by Andre)
; Date: 29. November 2003
Global Static2.l
Global ReUsableBrush,a.l
Procedure IsMouseOver(wnd)
GetWindowRect_(wnd,re.RECT)
GetCursorPos_(pt.POINT)
Result = PtInRect_(re,pt\x,pt\y)
ProcedureReturn Result
EndProcedure
Procedure SetColor(TxtColor,BkColor,wParam ,lParam )
Shared ReUsableBrush
DeleteObject_(ReUsableBrush)
ReUsableBrush = GetStockObject_(#HOLLOW_BRUSH)
SetBkColor_(wParam,BkColor)
SetTextColor_(wParam,TxtColor)
SetBkMode_(wParam,#TRANSPARENT)
Result = ReUsableBrush
ProcedureReturn Result
EndProcedure
Procedure WindowCallback(WindowID, message, wParam, lParam)
Result = #PB_ProcessPureBasicEvents
Select message
Case #WM_LBUTTONUP
If IsMouseOver(Static2)
ShellExecute_(0,"open","http:\\www.ampsoft.org",0,0,#SW_SHOWNORMAL)
EndIf
Case #WM_MOUSEMOVE
GetCursorPos_(pt.POINT)
GetWindowRect_(Static2,re.RECT)
If PtInRect_(re,pt\x,pt\y)
a = 1
SetWindowText_(Static2,"www.ampsoft.org")
SetCursor_(LoadCursor_(0,32649))
Else
a = 0
SetWindowText_(Static2,"www.ampsoft.org")
SetCursor_(LoadCursor_(0,#IDC_ARROW))
EndIf
InvalidateRect_(WindowID(),0,0)
Case #WM_CTLCOLORSTATIC
If lParam = Static2
If a
Result = SetColor(RGB(255,0,0),RGB(255,255,255),wParam,lParam)
Else
Result = SetColor(RGB(0,0,255),RGB(255,255,255),wParam,lParam)
EndIf
EndIf
EndSelect
ProcedureReturn Result
EndProcedure
If OpenWindow(0, 10, 150, 640,180, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget, "MouseOver")
If CreateGadgetList(WindowID())
Static2 = TextGadget(0, 10,10,220,24,"")
EndIf
SetWindowCallback(@WindowCallback())
SendMessage_(WindowID(),#WM_MOUSEMOVE,0,0)
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
Until Quit = 1
EndIf
End