Structur an eine Konstante heften
Verfasst: 02.12.2014 09:02
Hallo Leute,
Ich habe mal wieder ein kleines Problem.
Es handelt sich dabei um #PB_Any und Enumeration.
Ich möchte sowohl das meine Proceduren mit Variabeln laufen als auch mit Konstanten
z.b Button=Newbutton(#PB_Any) als auch NewButton(#MeinButton)
aber wie stelle Ich das an, da die Daten ja in einer Strutur gespeichet werden
wie kann Ich eine Verbindung der Structur zur meiner Konstante herstellen ??
Ich hoffe das war verständlich ausgedrückt
hier ein kleines Beispiel wo Ich fest stecke
Ich habe mal wieder ein kleines Problem.
Es handelt sich dabei um #PB_Any und Enumeration.
Ich möchte sowohl das meine Proceduren mit Variabeln laufen als auch mit Konstanten
z.b Button=Newbutton(#PB_Any) als auch NewButton(#MeinButton)
aber wie stelle Ich das an, da die Daten ja in einer Strutur gespeichet werden
wie kann Ich eine Verbindung der Structur zur meiner Konstante herstellen ??
Ich hoffe das war verständlich ausgedrückt
hier ein kleines Beispiel wo Ich fest stecke
Code: Alles auswählen
EnableExplicit
Structure Test
Id.i
x.i : y.i : w.i : h.i
text.s
EndStructure
Enumeration Button
#meinButton
EndEnumeration
Procedure Im_NewButton(Gadget.i,x.i,y.i,w.i,h.i,Text.s)
;Speicher reservieren
Protected *this.test = AllocateMemory(SizeOf(test))
;Daten der Structur übergeben
With *this
\x=x
\y=y
\w=w
\h=h
;bei #PB_Any das ButtonGadget der Structur übergeben
If Gadget=#PB_Any
\id=ButtonGadget(#PB_Any,x,y,w,h,text)
Else
;bei Enumeration ButtonGadget erstellen aber wie dann Weiter ?????????
;wie kann Ich die Structur an das Gadget heften ??????
ButtonGadget(Gadget,x,y,w,h,text)
\id=gadget
SetGadgetData(gadget, *this)
EndIf
EndWith
ProcedureReturn *this\Id
EndProcedure
Procedure Im_SetButtonText(*id.test,Text.s)
*id\text=text
SetGadgetText(*id,text)
EndProcedure
If OpenWindow(0, 0, 0, 855, 600, "Structur Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
Define button=Im_NewButton(#PB_Any,10,10,60,30,"test")
Im_NewButton(#meinButton,10,40,60,30,"test")
EndIf
Repeat
Define Event=WaitWindowEvent()
If event = #PB_Event_CloseWindow
Define Quit=#True
EndIf
If event=#PB_Event_Gadget
Select EventGadget()
Case button
Debug "du hast Button "+Str(button)+" gedrückt"
Im_SetButtonText(button,"Gedrückt")
Case #meinButton
;hier ensteht der Fehler weil Ich in Moment nicht weiß wie Ich an die Structur komme
Debug "du hast Button "+Str(#meinButton)+" gedrückt"
Im_SetButtonText(#meinButton,"Gedrückt")
EndSelect
EndIf
Until Quit=#True