Seite 2 von 2

Verfasst: 02.06.2008 17:20
von ne555
@ts-soft
waitWindowEvent, klar hast du oben ja schon mal erwähnt.
Wer lesen kann ist klar im Vorteil.:oops:
Damit hab ich ne Auslastung von 2%
Danke

hänge schon wieder

Verfasst: 03.06.2008 13:22
von ne555
Nun hänge ich schon wieder.
Die Behandlung von ButtonGadgets habe ich in einem Tutorial so gelernt, wie ich es im Code gemacht habe. Ich habe drei ButtonGadget die ich Abfragen möchte.
Button Speicher(101) (beendet momentan nur das aktive Fenster)
Button Abbrechen(102) (beendet das aktive Fenster)
Button Übernehmen(103) (Ausgewählte COM-Einstellung sollen in einen Konfigurations String übernommen werden.)

Wenn ich den Übernehmen Button anklicke durchläuft das Programm die if Abfrage wieder und wieder, bis ich auf irgend ein anderes Element klicke.
Ich suche mich in der Hilfe tot und finde einfach nichts, wie ich den Focus (103) wieder los werde.
Ich kenne von VB her das Klick-Ereignis OnClick. Wird dieses angewählt wird der Ereignis-Code beim Klicken nur einmal ausgeführt.

Versucht habe ich es z.B. mit SetGadgetState() und SetActiveGadget.

Code: Alles auswählen

    Repeat
     EventID = WaitWindowEvent(1)
      If EventID = #PB_Event_CloseWindow ; Auf Seite schließen abfragen 
         Exit = 1
      EndIf
      If EventGadget() = 101 ; Auf Speichern abfragen
         Exit = 1
      EndIf
      If EventGadget() = 102 ; Auf Abbrechen abfragen
          Exit = 1
      EndIf  
      If EventGadget() = 103 ; Einstellungen übernehmen
          com      = GetGadgetText(104)
          baud     = GetGadgetText(105) 
          parity   = GetGadgetText(106)
          databit  = GetGadgetText(107)
          stopbit  = GetGadgetText(108)
          Neu_konf = com + ": baud=" + baud + " parity=" + parity + " data=" + databit + " stop=" + stopbit 
          Akt_konf = Neu_konf
          MyCom    = Akt_konf
      EndIf 
     
      Until Exit = 1

[/code]

Re: hänge schon wieder

Verfasst: 03.06.2008 13:49
von Kiffi
@ne555: Du musst zuvor auf #PB_Event_Gadget prüfen:

Code: Alles auswählen

Repeat

  EventID = WaitWindowEvent(1)
  
  If EventID = #PB_Event_CloseWindow ; Auf Seite schließen abfragen 
    Exit = 1
  EndIf
  
  If EventID = #PB_Event_Gadget
    
    If EventGadget() = 101 ; Auf Speichern abfragen
      Exit = 1
    EndIf
    If EventGadget() = 102 ; Auf Abbrechen abfragen
      Exit = 1
    EndIf  
    If EventGadget() = 103 ; Einstellungen übernehmen
      [...]
    EndIf 
    
  EndIf 
  
Until Exit = 1
Idealerweise das ganze noch in einer Select-Abfrage (anstelle der If -EndIf
- Orgie) und mit aussagekräftigen Konstantennamen (anstelle der
nichtssagenden Nummern) ;-)

Grüße ... Kiffi