Einzelnen Beitrag anzeigen

SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
272 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Form.keypreview - Taste an Edit weiterreichen?

  Alt 26. Aug 2022, 13:41
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?
  Mit Zitat antworten Zitat