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.