Eventschleife - wie behandeln? [erledigt]
Moderator: Moderatoren
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Eventschleife - wie behandeln? [erledigt]
Guten Morgen,
ich stehe momentan auf dem Schlauch in der Behandlung einer Eventschleife. Ich möchte, daß ein Fenster nur dann verlassen werden kann, wenn ein bestimmter Rückgabewert einer Funktion vorliegt. Das soll speziell in diesem Fall greifen, wenn der Anwender das Fenster mit oDlg:close schließen will. so soll z.B. verhindert werden, daß das Fenster geschlossen wird, wenn noch Daten vorhanden sind, die noch nicht gespeichert sind.
Gibts da irgendeine Literatur, bei der man lernen kann, wie man die Eventschleife behandelt?
ich stehe momentan auf dem Schlauch in der Behandlung einer Eventschleife. Ich möchte, daß ein Fenster nur dann verlassen werden kann, wenn ein bestimmter Rückgabewert einer Funktion vorliegt. Das soll speziell in diesem Fall greifen, wenn der Anwender das Fenster mit oDlg:close schließen will. so soll z.B. verhindert werden, daß das Fenster geschlossen wird, wenn noch Daten vorhanden sind, die noch nicht gespeichert sind.
Gibts da irgendeine Literatur, bei der man lernen kann, wie man die Eventschleife behandelt?
Zuletzt geändert von Wolfgang_B am Do, 07. Jan 2021 16:35, insgesamt 1-mal geändert.
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Eventschleife - wie behandeln?
Dafür musst du die Klasse ableiten und in der Close Methode prüfen ob das schon geschlossen werden darf.
Ich meine der codeblock reicht nicht, bin mir aber nicht sicher.
Das komplette Programm gegen Windows zu schützen ist aber problematisch.
Ich schaue mal später wo ich sowas gemacht habe, ist schon eine Weile her
Ich meine der codeblock reicht nicht, bin mir aber nicht sicher.
Das komplette Programm gegen Windows zu schützen ist aber problematisch.
Ich schaue mal später wo ich sowas gemacht habe, ist schon eine Weile her
Gruß
Hubert
Hubert
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Eventschleife - wie behandeln?
Servus Wolfgang,
setz einfach eine Variable, die Du in der Event-Schleife, die für das Fenster zuständig ist, abfrägst:
setz einfach eine Variable, die Du in der Event-Schleife, die für das Fenster zuständig ist, abfrägst:
Code: Alles auswählen
do while nEvent <> xbeP_Close
nEvent := AppEvent(@mp1, @mp2, @oXbp)
if nEvent == xbeP_Close .and. .not. lBeenden
nEvent := xbe_None
if janein("Buchung / Überweisung wirklich abbrechen?")
lBeenden := .t.
PostAppEvent(xbeP_Close,,, oFenster)
endif
else
oXbp:handleEvent( nEvent, mp1, mp2 )
endif
enddo
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2825
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 96 Mal
- Danksagung erhalten: 13 Mal
Re: Eventschleife - wie behandeln?
Hallo, Wolfgang -
es gibt viele Möglichkeiten - ich nutze grundsätzlich für jedes Fenster einen eigenen Thread, der einen eigenen Event-Loop hat. Diesen kann ich dann entsprechend anpassen.
es gibt viele Möglichkeiten - ich nutze grundsätzlich für jedes Fenster einen eigenen Thread, der einen eigenen Event-Loop hat. Diesen kann ich dann entsprechend anpassen.
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Eventschleife - wie behandeln?
Wolfgang - ich habe zwar eXpress, liegt aber seit dem Kauf brav im Schrank...
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Eventschleife - wie behandeln?
Wie Georg sagt, es gibt viele Möglichkeiten. Eine weitere, einfache Möglichkeit wäre z. B. im Close-Codeblock Deines Fensters das entsprechend behandeln.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Eventschleife - wie behandeln?
hi,
Code: Alles auswählen
LOCAL lExit := .F.
oDlg:Close := {|| IF( CheckOk(oDlg:aEditControl), lExit := .T., ) }
DO WHILE !lExit = .T.
gruss by OHR
Jimmy
Jimmy
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Eventschleife - wie behandeln?
sorry, hatte vor lauter Gartenbau vergessen, mich zu bedanken!!
Also Vielen Dank für die Tipp!
Also Vielen Dank für die Tipp!
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück