Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Edit-Felder durchnummerieren

  Alt 30. Sep 2005, 20:08
Hai KaMpfGn0m,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXiS".

Du musst in diesem Fall alle Controls des Edits durchlaufen und prüfen ob es:
a) Ein Editfeld ist und
b) Ob der Name des Edits mit deinen Vorgaben übereinstimmt.

Das ganze kann zum Beispiel so aussehen:
Delphi-Quellcode:
procedure TForm1.btn_EditTestClick(Sender: TObject);
var
  ndx: integer;
  nummer: integer;
begin
  nummer := 3;
  for ndx := 0 to Pred(controlcount) do // Alle Controls durchlaufen
  begin
    if (Controls[ndx] is TEdit) and // Wenn das Control ein Edit ist und
      (Controls[ndx].Name = 'edt_Edit' + IntToStr(nummer)) then // den Namen 'edt_Edit' + nummer hat
    begin
      if ((Controls[ndx] as TEdit).Text = 'G') then // Wenn in dem Control ein G steht dann
      begin
        ShowMessage('blubb');
      end;
      Break;
    end;
  end;
end;
Edit, das ganze noch als richtige Funktion *g*
Delphi-Quellcode:
function GetEdit(const aNumber: integer; const aParent: TWinControl): TEdit;
var
  ndx: integer;
begin
  result := nil;
  with aParent do
  begin
    for ndx := 0 to Pred(controlcount) do // Alle Controls durchlaufen
    begin
      if (Controls[ndx] is TEdit) and // Wenn das Control ein Edit ist und
        (Controls[ndx].Name = 'edt_Edit' + IntToStr(aNumber)) then
      begin
        Result := (Controls[ndx] as TEdit);
      end;
    end;
  end;
end;

procedure TForm1.btn_Button1Click(Sender: TObject);
begin
  if GetEdit(3,self).Text = 'Gthen ShowMessage('blubb'); // Wenn das Edit auf der Form liegt
  if GetEdit(2,Panel1).Text = 'Gthen ShowMessage('blubb'); // Wenn das Edit z.B. auf Panel1 liegt.
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat