stevie1401 hat geschrieben:Code: Alles auswählen
For i=1 To 100
TextGadget(#PB_Any, 10,i+80,100,25,"TextGadget "+Str(i))
Next i
Ich frag mich ja, ob irgend jemand dieses (hingefletzte) Beispiel ausprobiert hat.
Nie zuvor habe ich so heftige GTK-Warnings gekriegt - aber auch einen Moment gebraucht, bis ich geschnallt habe, dass das Trampeln auf der Stelle auch eine echte Herausforderung ist.
Da das Erstellen von Gadgetlisten on the fly für mich auch völlig neu ist, habe ich mal ein kleine Studie zu ScrollAreaGadget und GadgetList erarbeitet ... und das dann noch in ein 2 Fenstermodel eingebettet. viel Vergnügen
Code: Alles auswählen
;- zweite Version mit 2 Fenstern
If OpenWindow(0, 0, 0, 305, 180, "ScrollAreaGadget - test Gadget-Lists", #PB_Window_SystemMenu | #PB_Window_ScreenCentered); | #PB_Window_Invisible
ScrollAreaGadget(0, 10, 10, 290, 160, 375, 205, 30)
ButtonGadget (1, 150, 0, 120, 30, "1: Button")
ButtonGadget (2, 150, 35, 120, 30, "2: add change list")
ButtonGadget (3, 150, 70, 120, 30, "3: reNew gadget list")
TextGadget (4, 0, 10, 145, 80, " 4: This is the content" + Chr(10) + " of a ScrollAreaGadget!" + Chr(10) + Chr(10) + " at the moment", #PB_Text_Center | #PB_Text_Border)
CloseGadgetList()
HideGadget(0, 1)
If OpenWindow(1, 0, 0, 210, 110, "naggy window :-)", #PB_Window_WindowCentered, WindowID(0))
DisableWindow(0, 1)
SetActiveWindow(1)
ButtonGadget(5, 30, 40, 130, 25, "close dat 2nd window")
EndIf
RandomSeed(333)
n = 1 ; To count Case 3
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
If EventWindow() = 0
End
ElseIf EventWindow() = 1
CloseWindow(1)
DisableWindow(0, 0)
HideGadget(0, 0)
SetActiveWindow(0)
EndIf
Case #PB_Event_Gadget
Select EventWindow()
Case 0
Select EventGadget()
Case 1
MessageRequester("Info", "Button 1 was pressed!", #PB_MessageRequester_Ok)
SetGadgetText(1, "1: was pressed")
Case 2
OpenGadgetList(0)
ButtonGadget (1, 150, 0, 120, 30, "old 1 again")
SetGadgetColor(4, #PB_Gadget_BackColor, RGB(Random(189), Random(123), Random(133)))
ButtonGadget (5, 170, 105, 80, 30, "new Gaget 5")
CloseGadgetList()
Case 3
; HideGadget(0,1)
OpenGadgetList(0)
For i = 4 To (Random(99) + 1)*30
h = (i - 4)*30
StringGadget(i, 10, h, 120, 25, Str(n) + " - TextGadget " + Str(i))
; Delay(60)
Next i
n + 1
SetGadgetAttribute(0, #PB_ScrollArea_InnerHeight, h + 30)
SetGadgetText(1, Str(i - 1) + " - new Gadgets")
CloseGadgetList()
; HideGadget(0,0)
EndSelect
Case 1
Select EventGadget()
Case 5
CloseWindow(1)
DisableWindow(0, 0)
HideGadget(0, 0)
SetActiveWindow(0)
EndSelect
EndSelect
EndSelect
ForEver
EndIf
Ich frage mich allerdings nun, inwieweit kann man für solche variablen Gadgets überhaupt Event-Abfragen anlegen. Läßt sich sowas auch zur Laufzeit erstellen, variieren und anpassen?
Gruß ~ Vera