Page 1 sur 1

créer son propre gadget en Purebasic

Publié : lun. 13/nov./2006 1:03
par meganet
Salut, esque quelu'un ceri comment créer çon propre gadget en purebasic.
Example: comment pourraient-ont faire pour créer un gadget qui jourrai le même rôle que webgadget.
Merci!

Publié : lun. 13/nov./2006 13:50
par gnozal
Il exist une lib CreateGadget qui fait partie de PBOSL : http://pbosl.purearea.net/

à quoi ça correspond?

Publié : lun. 13/nov./2006 19:14
par meganet
Salut, l'aide est en anglais, et je ne comprend pas tout.

Code : Tout sélectionner


CreateGadget()

CreateGadget

Syntax:

CreateGadget(Id.l, ClassName.s, Text.s, Style.l, X.l, Y.l, CX.l, CY.l[,ExStyle.l[,DestroyProc.l[,*vt.PB_GadgetVT]]])

Parameters:


ID.l

=

Gadget Number or #PB_Any (ça j'ai compris),

ClassName.s

=

Registered Name in Windows (ça je ne vois pas ce que c'est),

Style.l

=

Windowsstyle (ça je ne vois pas ce que c'est),

X.l

=

x-position (ça ok),

Y.l

=

y-position (ça ok),

CX.l

=

with (ça ok),

CY.l

=

height (ça ok),

ExStyle

=

Extended Style (optional = 0) (ça je ne vois pas ce que c'est),

DestroyProc.l

=

Procedure to cleanup (optional = 0) (ça je ne vois pas ce que c'est),

*vt.PB_GadgetVT

=

pointer to structure of Gadgetfunctions to register (ça je pence que c'est pour donner l'adresse de la structure du gadget).

(à la description jcomprend vaguement).
Description:

register and create the user defined Gadget

Example:

; Structure for Gadgetfunctions
Structure PB_GadgetVT
GadgetType.l
SizeOf.l
GadgetCallback.l
FreeGadget.l
GetGadgetState.l
SetGadgetState.l
GetGadgetText.l
SetGadgetText.l
AddGadgetItem2.l
AddGadgetItem3.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
AddGadgetColumn.l
RemoveGadgetColumn.l
GetGadgetAttribute.l
SetGadgetAttribute.l
GetGadgetItemAttribute2.l
SetGadgetItemAttribute2.l
SetGadgetColor.l
GetGadgetColor.l
SetGadgetItemColor2.l
GetGadgetItemColor2.l
SetGadgetItemData.l
GetGadgetItemData.l
EndStructure

If LoadLibrary_("Scintilla.dll") = #False : MessageRequester("", "Scintilla.dll nicht gefunden") : End : EndIf

Procedure MySciEdit(Gadget, x, y, width, height)
ProcedureReturn CreateGadget(Gadget, "Scintilla", "", #WS_CHILD | #WS_VISIBLE, x, y, width, height)
EndProcedure

Procedure MyStatic(Gadget, x, y, width, height, Text.s)
ProcedureReturn CreateGadget(Gadget, "Static", Text, #WS_CHILD|#WS_VISIBLE|#SS_CENTER|#SS_SUNKEN, x, y, width, height)
EndProcedure

Procedure MyButton(Gadget, x, y, width, height, Text.s)
ProcedureReturn CreateGadget(Gadget, "Button", Text, #WS_CHILD | #WS_VISIBLE, x, y, width, height)
EndProcedure

If OpenWindow(0, #PB_Ignore, 0, 250, 480, "Test")
CreateGadgetList(WindowID(0))

MySciEdit(0, 0, 0, 250, 400)
MyButton(1, 10, 440, 50, 25, "Button 1")
GadgetToolTip(1, "Button 1")
MyButton(2, 70, 440, 50, 25, "Button 2")
GadgetToolTip(2, "Button 2")
btn3 = MyButton(#PB_Any, 130, 440, 50, 25, "Button 3")
GadgetToolTip(btn3, "Button 3")
MyButton(4, 190, 440, 50, 25, "")
GadgetToolTip(4, "Button 4")
MyStatic(5, 10, 410, 50, 20, "Label 1")
MyStatic(6, 70, 410, 50, 20, "Label 2")
MyStatic(7, 130, 410, 50, 20, "Label 3")
MyStatic(8, 190, 410, 50, 20, "Label 4")

SetGadgetText(0, "Feel the ..Pure.. Power")
SetGadgetText(4, "Button 4")

EndIf

Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case 1
Debug "Button 1"
If GetGadgetText(1) = "Button 1"
SetGadgetText(1, "PushMe")
Else
SetGadgetText(1, "Button 1")
EndIf
Case 2
Debug "Button 2"
Debug GetGadgetText(0)
Case btn3
Debug "Button 3"
Case 4
Debug "Button 4"
EndSelect
EndSelect
ForEver

Voilà si quelqu'un pourrais me traduir un peu car l'anglais et moi = 30!

Merci![/code]