Ich möchte, daß wenn der Nutzer im Form einfach lostippt, die Eingabe in ein Edit-Feld umgeleitet wird.
"Einfach lostippen" heißt, der Focus kann zB auf einem Button stehen oder einer Checkbox...
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
//Form1.KeyPreview ist true
if Application.MainForm.ActiveControl=memo1 then begin
memo1KeyPress(memo1,key); exit
end;
if //diese bekommen die Eingaben ja ganz normal
(Application.MainForm.ActiveControl is TEdit) or
(Application.MainForm.ActiveControl is TSpinEdit) or
(Application.MainForm.ActiveControl is TLabeledEdit) or
(Application.MainForm.ActiveControl is TMemo)
then exit;
//Irgendwo anders drauf
if (key<>#13) then begin
if edit1.canFocus then begin
edit1.setfocus;
edit1KeyPress(edit1,key);
end else
if edit2.canFocus then begin
edit2.setfocus;
edit2KeyPress(edit2,key);
end;
// key:=#0; //ist das sinnvoll oder nötig?
end;
end;
Aktuell klappt es mit dem Focus-Setzen auf das richtige Editfeld.
Aber mein Problem dabei ist, daß der erste Tastendruck auf diesem Weg ins Editfeld verloren geht.
Wie bekomme ich es hin, daß der erste Tastendruck auch ins Editfeld gelangt?