Auch wenn ein Teil davon bereits erwähnt wurde, zähle ich das noch mal kurz mit auf:
Warum nicht eine Tabelle (Grid) für die Eingabe verwenden?
Wenn man Komponenten zur Laufzeit erzeugt, kann man denen auch passende Eigenschaften verpassen:
Delphi-Quellcode:
type
TMyEdit = class(TEdit)
private
FPosition: TPoint;
public
property Position: TPoint read FPosition write FPosition;
end;
{...}
Edt := TMyEdit.Create(Self);
Edt.Position.X := k;
Edt.Position.Y := i;
Edt.OnExit := ABCOnExit;
{...}
procedure TForm1.ABCOnExit(Sender: TObject);
begin
k := TMyEdit(Sender).Position.X;
i := TMyEdit(Sender).Position.Y;
{...}
end;
Speichert man die Komponenten beim Erzeugen in einem Array, wird FindComponent nicht benötigt.
Delphi-Quellcode:
TForm1 = class(TForm)
private
FMyEditABC: array of array of TMyEdit;
end;
Edt := TMyEdit.Create(Self);
FMyEditABC[k, i] := Edt;