Seite 1 von 1
Spezielles Problem mit SetGadgetState()
Verfasst: 18.04.2006 07:37
von aspicza
Hallo!
Für die Mithilfe der Community wäre ich sehr dankbar:
---- CODE-Anfang ----
...
DateGadget(1000,10,10,250,20,"Datum: %dd.%mm.%yyyy Uhrzeit: %hh:%ii")
DateGadget(1001,10,50,250,20,"Datum: %dd.%mm.%yyyy Uhrzeit: %hh:%ii")
von.l=GetGadgetState(1000)
von+3600
...
SetGadgetState(1001,von)
...
---- CODE-Ende ----
obiger Quellcode funktioniert einwandfrei, wenn ich die Kompilierung aus Purebasic mit F5 durchführe und das Programm starte.
Wenn ich meinen Quellcode in eine EXE kompiliere, dann funktioniert SetGadgetState() in der EXE-Datei nicht.
Wer kann mir helfen? Handelt es sich um einen Bug???
Carpe Diem
Arndt
Verfasst: 18.04.2006 07:56
von ts-soft
Hab den Code mal funktionstüchtig vervollständigt! Funktioniert in meiner Version als Exe, sowie in der IDE
Code: Alles auswählen
If OpenWindow(0, 100, 100, 150, 100, #PB_Window_SystemMenu, "")
If CreateGadgetList(WindowID(0))
DateGadget(0, 0, 0, 150, 20, "Datum: %dd.%mm.%yyyy Uhrzeit: %hh:%ii")
DateGadget(1, 0, 50, 150, 20, "Datum: %dd.%mm.%yyyy Uhrzeit: %hh:%ii")
von.l = GetGadgetState(0)
von + 3600
SetGadgetState(1, von)
EndIf
EndIf
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Verfasst: 18.04.2006 08:19
von aspicza
Vielen Dank für die schnelle Antwort aber.....
Code
Code: Alles auswählen
If OpenWindow(0, 100, 100, 450, 400, #PB_Window_SystemMenu, "")
If CreateGadgetList(WindowID(0))
DateGadget(0, 0, 0, 250, 20, "Datum: %dd.%mm.%yyyy Uhrzeit: %hh:%ii")
DateGadget(1, 0, 50, 250, 20, "Datum: %dd.%mm.%yyyy Uhrzeit: %hh:%ii")
ButtonGadget(2,0,100,100,100,"TEST")
von.l = GetGadgetState(0)
von + 3600
SetGadgetState(1, von)
EndIf
EndIf
Repeat
event=WaitWindowEvent()
Select event
Case #PB_Event_Gadget
Select EventGadgetID()
Case 2
von+3600
SetGadgetState(1,von)
EndSelect
EndSelect
Until event = #PB_Event_CloseWindow
Ich habe gerade gemerkt, dass ich in meinem ersten Teil vergessen habe zu erwähnen, dass die Erhöhung von 'von' durch einen Button erfolgt. Ich habe Deinen Quellcode entsprechend erweitert und mein Problem ist vorhanden: mit F5 kein Probelm, als EXE-Datei funktioniert es nicht.
Ich bin gespannt, ob es bei Dir klappt.
Carpe Diem
Arndt
Verfasst: 18.04.2006 09:15
von ts-soft
Funktioniert einwandfrei!
Um dies zu verdeutlichen habe ich noch eine Zeile eingefügt, wenn der Button
gedrückt wird. Die Anzeige unten entspricht dann der von Oben plus einer
Stunde.
Code: Alles auswählen
If OpenWindow(0, 100, 100, 450, 400, #PB_Window_SystemMenu, "")
If CreateGadgetList(WindowID(0))
DateGadget(0, 0, 0, 250, 20, "Datum: %dd.%mm.%yyyy Uhrzeit: %hh:%ii")
DateGadget(1, 0, 50, 250, 20, "Datum: %dd.%mm.%yyyy Uhrzeit: %hh:%ii")
ButtonGadget(2,0,100,100,100,"TEST")
von.l = GetGadgetState(0)
von + 3600
SetGadgetState(1, von)
EndIf
EndIf
Repeat
event=WaitWindowEvent()
Select event
Case #PB_Event_Gadget
Select EventGadgetID()
Case 2
von.l = GetGadgetState(0)
von+3600
SetGadgetState(1,von)
EndSelect
EndSelect
Until event = #PB_Event_CloseWindow
HIIIIILFE!!! Bei mir funktioniert es nicht!!!
Verfasst: 18.04.2006 09:42
von aspicza
Code: Alles auswählen
If OpenWindow(0, 100, 100, 450, 400, #PB_Window_SystemMenu, "")
If CreateGadgetList(WindowID(0))
DateGadget(0, 0, 0, 250, 20, "Datum: %dd.%mm.%yyyy Uhrzeit: %hh:%ii")
DateGadget(1, 0, 50, 250, 20, "Datum: %dd.%mm.%yyyy Uhrzeit: %hh:%ii")
ButtonGadget(2,0,100,100,100,"TEST")
von.l = GetGadgetState(0)
von + 3600
SetGadgetState(1, von)
EndIf
EndIf
Repeat
event=WaitWindowEvent()
Select event
Case #PB_Event_Gadget
Select EventGadgetID()
Case 2
von.l = GetGadgetState(0)
von+3600
SetGadgetState(1,von)
EndSelect
EndSelect
Until event = #PB_Event_CloseWindow
Bei mir funktioniert der oben geschriebene Code nicht!!!!!!!! Ich habe den Text von TS-Soft einfach nur kopiert und mit F5 gestartet. Wenn ich auf den Button klicke, dann passiert nichts. Auch mit der EXE funktioniert es nicht!!! Lösche ich
bei
CASE 2
von.l=GetgadgetState(0)
die Zeile 'von.l=GetGadgetState(0)', dann funktioniert es auch wieder mit F5. Aber in der EXE nicht.
WORAN LIEGT DAS??? Ich habe Windows XP Professional und Purebasic 3.94
Schöne Grüße
Arndt
Verfasst: 18.04.2006 10:37
von stbi
so gehts auch mit der EXE (PB 3.94 und XP Pro):
Code: Alles auswählen
If OpenWindow(0, 100, 100, 450, 400, #PB_Window_SystemMenu, "")
If CreateGadgetList(WindowID(0))
DateGadget(0, 0, 0, 250, 20, "Datum: %dd.%mm.%yyyy Uhrzeit: %hh:%ii")
DateGadget(1, 0, 50, 250, 20, "Datum: %dd.%mm.%yyyy Uhrzeit: %hh:%ii")
ButtonGadget(2,0,100,100,100,"TEST")
von.l = GetGadgetState(0)
von + 3600
SetGadgetState(1, von)
EndIf
EndIf
Repeat
event=WaitWindowEvent()
Select event
Case #PB_Event_Gadget
Select EventGadgetID()
Case 2
von+3600
egal.l = GetGadgetState(0)
SetGadgetState(1,von)
EndSelect
EndSelect
Until event = #PB_Event_CloseWindow
Warum das nur so geht, weiß ich leider nicht. Würde auf einen Bug tippen, aber vielleicht hat ja jemand noch eine Erklärung dafür.