Einzelnen Beitrag anzeigen

Kurt Wallander

Registriert seit: 11. Mai 2020
Ort: Freiberg
35 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Zur Laufzeit erzeugte Editierfelder

  Alt 24. Apr 2021, 12:04
Glück auf!

Vielen Dank für die Replies.
Noch einmal, mein Problem ist, daß ich die Editierfelder zur Laufzeit erzeugen kann. Die Editierfelder haben Namen:ABC00_Edt, ABC01_Edt usw. usf. In diese Editierfelder gebe ich die Werte der Matrixkomponenten ein. Wenn ich nun mit der TAB-Taste zum nächsten Editierfeld "wandere", soll ein OnExit-Ereignis ausgelöst werden, welches ich benutzen will, um den Wert im Editierfeld den Variablen ABC[0,0], ABC[0,1] ... zuzuweisen. Zur Programmierzeit sind ja weder die ABC00_Edt, ABC01_Edt noch ABCOnExit dem Compiler bekannt.
Den Code habe ich inzwischen leicht modifiziert, so daß ich ihn wieder einstelle.
Delphi-Quellcode:
procedure TForm1.CreateMatrix(rang:integer);
var
   Edt : TEdit;
   i,k : integer;
begin
   SetLength(ABC,rang,rang);
   for i:=0 to rang-1 do
      for k:=0 to rang-1 do
      begin
         if TEdit(FindComponent('ABC'+IntToStr(i)+IntToStr(k)+'_Edt')) = nil then
         begin
            Edt:=TEdit.Create(Self);
            Edt.Parent:=GroupBox1;
            Edt.Name:='ABC'+IntToStr(i)+IntToStr(k)+'_Edt';
            Edt.Width:=75;Edt.Height:=24;
            Edt.Top:=30+i*35;
            Edt.Left:=15+k*90;
            Edt.Alignment:=taRightJustify;
            Edt.BiDiMode:=bdLeftToRight;
            Edt.Visible:=true;Edt.Enabled:=true;
            Edt.Text:='';
            Edt.OnExit:=ABCOnExit;
         end;
      end;
   if rang=3 then
   begin
      GroupBox1.Width:=290;GroupBox1.Height:=145;
   end
   else
   begin
      GroupBox1.Width:=195;GroupBox1.Height:=100;
   end;
end;
Viele Grüße
Kurt
  Mit Zitat antworten Zitat