Abarbeitungsreihenfolge von Slots

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Abarbeitungsreihenfolge von Slots

Beitrag von Manfred »

Hi,

ich finde im Moment nichts über die Reihenfolge, die eingehalten wird, wenn Slots eines Objektes abgefragt werden.

folgendes Beispiel

Code: Alles auswählen

:keyboard := {||bklablah}
:validate   := {||bklablah}
:killinputfocus := {||bklablah}

und was weiß ich, was es noch so alles gibt.

ist ein :validate vor einem Keyboard , oder umgekehrt?

Oder hängt das auch noch von der Taste ab, die gedrückt wurde?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Abarbeitungsreihenfolge von Slots

Beitrag von AUGE_OHR »

hi,
Manfred hat geschrieben: Oder hängt das auch noch von der Taste ab, die gedrückt wurde?
gute Frage ... damit ein Event passiert muss ja vorher was gewesen sein
(ausgenommen Xbe_None) also eine Taste oder eine Maus Aktion.
Deshalb denke ich mal das dadurch die Reihenfolge festgelegt wird und
die sich nicht gegenseitig ins Gehege kommen ...
(ok es kann Ausnahmen geben wie left/shift + left/Maus-click ...)
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Abarbeitungsreihenfolge von Slots

Beitrag von brandelh »

Manfred hat geschrieben:Hi,
ich finde im Moment nichts über die Reihenfolge, die eingehalten wird, wenn Slots eines Objektes abgefragt werden.
folgendes Beispiel

Code: Alles auswählen

:keyboard := {||bklablah}
:validate   := {||bklablah}
:killinputfocus := {||bklablah}
Hallo Manfred,

die Reihenfolge kannst du z.B. mit MSGBOX() in den Codeblöcken ermitteln.
Aber soweit ich weiß gilt folgendes:

:KeyBoard wird immer aufgerufen wenn (irgend) eine Taste gedrückt wurde (Maus ??? wohl nicht). Da du in ein SLE oder MLE etc. ohne den Focus zu verlieren mehr Text eingeben darfst (von Ausnahmen wie AUTOTAB oder der druck auf TAB mal abgesehen) bleibt es nach dem Tastendruck im Control, also KEIN KillInputFocus und KEIN Validate

Die Validate()-Methode entscheidet, ob das SLE gültig ist, also verlassen werden darf, also muss er VOR dem KillInputFocus geprüft werden. Wenn er .t. zurückgibt, darf das Control verlassen und KillInputFocus ausgelöst werden. Da ich hiermit aber nicht arbeite, kann ich das nicht genau sagen ;-)

Und KillInputFocus() wird erzeugt NACHDEM das Control den Eingabefocus schon verloren hat !!!

Eines ist auch wichtig, wenn man einen CodeBlock in einen Slot setzt ( z.B. bei :KeyBoard), wird die Methode zuerst aufgerufen, danach der Codeblock. Das Ereignis als solches ist also schon vorbei !

Wenn man aber statt dessen die Methode in einer eigenen abgeleiteten Klasse ändert, dann kann man z.B. die Verarbeitung verhindern - ob das sinnvoll ist muss man aber selbst wissen !
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

danke erstmal. Ich stelle fest, dass ich immer noch nicht so ganz alles im Überblick habe, was man noch selbst beeinflussen kann und wie und wozu. Ich denke mal, es ist jetzt wieder an der Zeit mit dem neu erlangten Wissen der letzten Tage das Handbuch zu lesen und dann evtl. weitere Zusammenhänge zu verstehen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten