Einzelnen Beitrag anzeigen

globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Edit-Felder => array of integer

  Alt 29. Jan 2009, 10:53
wie wär's denn ungefähr so:

Delphi-Quellcode:
const maxidx = 9;

type
  TForm1 = class(TForm)
    Edit11: TEdit;
    Edit12: TEdit;
    Edit13: TEdit;
    ...
    Edit21: TEdit;
    Edit22: TEdit;
    Edit23: TEdit;
    ...
    Edit91: TEdit;
    Edit92: TEdit;
    Edit93: TEdit;
    ...
    Edit99: TEdit;

    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
    EditCompNo: array[1..maxidx,1..maxidx] of integer;
    function myEditName(i,j: integer): string;
    function myEdit(i,j: integer): TEdit;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.myEditName(i, j: integer): string;
begin
  Result:='Edit'+IntToStr(i)+IntToStr(j);
end;

function TForm1.myEdit(i, j: integer): TEdit;
begin
  Result:=Components[EditCompNo[i,j]] as TEdit;
end;

procedure TForm1.FormCreate(Sender: TObject);
var i,j: Integer;
    Editname: string;
begin
  for i:=1 to maxidx do
  begin
    for j:=1 to maxidx do
    begin
      Editname:=myEditName(i,j);
      EditCompNo[i,j]:=FindComponent(Editname).ComponentIndex;
    end;
  end;

end;

procedure TForm1.FormShow(Sender: TObject);
var i,j: Integer;
begin
  for i:=1 to maxidx do
    for j:=1 to maxidx do
      myEdit(i,j).Text:=IntToStr(i)+IntToStr(j);
end;
nur so als Gedanke ... und statt die Felder einzeln hinzuzappeln, könntest du dir auch ne Routine schreiben, um ein TEdit beim Create zu erzeugen. Damit könntest du dann alle Edit-Felder in einem Rutsch mit allen Eigenschaften definieren, positionieren und ganz nebenbei auch EditCompNo belegen.

mit myEdit(i,j) hast du dann immer Zugriff auf die Felder
  Mit Zitat antworten Zitat