In welchem SLE Eingabefeld ich mich befinde

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
saul
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 284
Registriert: So, 26. Mär 2006 12:23

In welchem SLE Eingabefeld ich mich befinde

Beitrag von saul »

Hallo,
ich habe 5 SLE Eingabefelder. Ich kann mit der Tab Taste von Feld zu Feld springen. Kann ich im Eventloop ermitteln in welchem Feld man sich aktuell befindet?

Code: Alles auswählen

// Event loop = Programmsteuerung 
      nEvent := 0 
      DO WHILE nEvent <> xbeP_Close 
         nEvent := AppEvent( @mp1, @mp2, @oXbp ) 
         oXbp:handleEvent( nEvent, mp1, mp2 ) 
      ENDDO 
mfg
Wolfgang
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: In welchem SLE Eingabefeld ich mich befinde

Beitrag von Tom »

Hallo, Wolfgang.

Durch einen simplen Vergleich. Wenn alle SLEs z.B. in einem Array stehen, das dem Eventhandler bekannt ist, musst Du nur jedes Element mit oXbp vergleichen. Der Treffer ist es dann. Die SLEs können strukturell sogar gleich sein, der Vergleich feuert trotzdem beim richtigen.
Herzlich,
Tom
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: In welchem SLE Eingabefeld ich mich befinde

Beitrag von Werner_Bayern »

die Frage ist, was will er erreichen? Evtl. kann er das mit entsprechenden Methoden / Callbacks des SLEs eleganter lösen.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: In welchem SLE Eingabefeld ich mich befinde

Beitrag von mini990 »

oSLe:Hasinputfocus()

auf diese Art ermittle ich das "aktuelle" Sle

Gruß Stefan
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: In welchem SLE Eingabefeld ich mich befinde

Beitrag von Tom »

Es kommt darauf an, was er genau will.

Wenn Wolfgang, wie er schreibt, im Eventhandler wissen will, welches SLE den Fokus hat, dann wäre es tatsächlich am einfachsten, zu prüfen, ob überhaupt ein SLE den Fokus hat (also oXbp von XbpSLE abgeleitet wurde) und welches (Vergleich). Man kann natürlich auch - eleganter - die Dialogklasse um eine entsprechende Instanz ergänzen und bei SetInputFocus() und KillInputFocus() entsprechende iVars besetzen. Es gibt viele Wege. Aber der simpelste besteht eben darin, einfach zu vergleichen.
Herzlich,
Tom
saul
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 284
Registriert: So, 26. Mär 2006 12:23

Re: In welchem SLE Eingabefeld ich mich befinde

Beitrag von saul »

Hi,
stimmt manchmal kann das Leben erschreckend einfach sein. Funktioniert, danke

Wolfgang
Antworten