Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ActiveControl und GroupBox mit Edit-Feldern (https://www.delphipraxis.net/60728-activecontrol-und-groupbox-mit-edit-feldern.html)

bioser 11. Jan 2006 17:19


ActiveControl und GroupBox mit Edit-Feldern
 
hi, ich habe mehrere GroupBoxen, auf denen sich wiederum mehrere
Edit-Felder befinden und eine Bildschirmtastatur, die ich als
AppBar implementiert habe.
Im Prinzip müßte ich für jedes Edit-Feld im OnChange-Handler
folgenden Code einsetzen:

Delphi-Quellcode:
Form1.ActiveControl := TEditNR;
Damit könnte ich noch leben. Aber was mache ich, wenn ich
auf meiner virtuellen Tastatur eine Taste drücke, in welches
Feld ich schreiben muß. Ich kann doch nicht immer wieder
folgende Abfrage machen:

Delphi-Quellcode:
if Form1.ActiveControl = TEditNR then schreibe Zeichen in Feld TEditNR
Wisst Ihr da ne bessere Lösung ?

Gruss
BIOSER

DGL-luke 11. Jan 2006 18:08

Re: ActiveControl und GroupBox mit Edit-Feldern
 
du brauchst nur einen pointer auf dein edit.

Delphi-Quellcode:
var ActiveEdit: TEdit //global / form-member

procedure TForm1.Edit1SetFocus(sender: TObject);
begin
ActiveEdit = Sender as TEdit;
end;
Diese Prozedur musst du dann bei allen edits als "getfocus" oder "setfocus"-event eintragen (irgendwie so heisst das)

Wenn du dann auf deiner bildschirmtatatur allen tastenbuttons als Tag-property den ASCII-Wert des Buchstabens zuordnest, gehts (fast) genauso:

Delphi-Quellcode:
procedure TForm1.KeyButtonCLick(Sender: TObject);
begin
ActiveEdit.text = ActiveEdit.Text + chr((Sender as TControl).Tag) //chr wandelt eine zahl in den entsprechenden character um
end;
//edit: nach deinem code: einfach auf
Delphi-Quellcode:
Form1.ActiveControl.text
zureifen.

// edit2: ist form1.activecontrol eine variable, die auomatishc von der form erzeugt wurde? dann wird dir die zuweisung nichts helfen, weil sie beim klick auf den button sofort überschrieben wird.

bioser 11. Jan 2006 19:28

Re: ActiveControl und GroupBox mit Edit-Feldern
 
hi, danke. Du meinst sicher OnEnter..


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz