Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - letzten Focus ermitteln? wie?


Fboesel - Do 09.09.04 18:35
Titel: letzten Focus ermitteln? wie?
Hallo!

ich sitze gerade an einen "kleinen" Problem:

Kann ich ermitteln, welches Feld (z.B. Edit) unmittelbar vorher den Focus gehabt hat?
z.B. ich clicke auf einen Button und möchte feststellen, welches Edit-feld unmittelbar vorher :!: aktiv war.

freue mich auf eine Antwort!


Keldorn - Do 09.09.04 19:32

was spricht dagegen, das onexit-ereignis der edits zu nutzen?

Mfg Frank


Fboesel - Do 09.09.04 21:18

Hallo Frank,

weil es von meinen logischen Programm-Ablauf nicht so einfach ist, ich müßte dann mit
Hilfsvariablen arbeiten und das hätte ich gerne vermieden.

Die Sache ist ein wenig komplexer - aber anhand eines einfachen Beispiels möchte
ich es kurz erläutern:

Ich habe z.B. 10 Editfelder und einen Button, wo drauf steht - Eingabe löschen
Wenn ich jetzt auf <Eingabe löschen> drücke, möchte ich gerne das Feld löschen aus
dem ich gerade gekommen bin.

aber danke mal fürs Erste

mfg Fboesel


Keldorn - Do 09.09.04 21:25

ich wüßte nichts anders, als das onexit zu verwenden und sehe da auch kein großes Problem drin. Brauchst auch nur eine einzige hilfsvariable:

Pseudocode:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
  private der Form:
    Lastedit:Tedit;

...
procedure formcreate...
  begin
    lastedit:=Nil;
  end;

procedure Editonexit...
//(einmal erstellen und allen edits zuweisen)
  begin
    lastedit:=Sender;
  end;

procedure buttonklick...
  begin
    if lastedit<>Nil then lastedit.text:='';
  end;


Mfg Frank


Fboesel - Fr 10.09.04 08:26

hi,

ich werde es gleich mal ausprobieren.

Danke