Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Objecte ansprechen die während der Laufzeit erstellt wurden (https://www.delphipraxis.net/120492-objecte-ansprechen-die-waehrend-der-laufzeit-erstellt-wurden.html)

Spiderpig_GER_15 11. Sep 2008 13:07


Objecte ansprechen die während der Laufzeit erstellt wurden
 
Hi,

ich hab eine Frage, wenn ich Beispielsweise wie folgt 10 Edits erstelle, wie greife ich anschließend auf diese zu?

Also
Delphi-Quellcode:
for i:=1 to 10 do
begin
  with TEdit.create do
  begin
    Width:=20;
    Height:=40;
    Left:=0+(20*i);
    Top:=10;
  end;
end;
Wie kann ich jetzt nachträglich die Eigenschaft "Text" von dem- sagen wir 2ten- erstellen Editfeld verändern?

MfG
Spiderpig

PS: Code ungeprüft, sollte aber glaub ich funktionieren...

toms 11. Sep 2008 13:09

Re: Objecte ansprechen die während der Laufzeit erstellt wur
 
Hallo,

Gib den TEdits einen Namen und sprich sie dann per FindComponent an.

Bernhard Geyer 11. Sep 2008 13:09

Re: Objecte ansprechen die während der Laufzeit erstellt wur
 
legt dir ein myEdit: array[1..10] of TEdit an und speichere die Edit-Referenzen dort.

DeddyH 11. Sep 2008 13:09

Re: Objecte ansprechen die während der Laufzeit erstellt wur
 
Entweder in einer TObjectlist selber verwalten oder Namen vergeben und mit FindComponent() suchen fällt mir auf die Schnelle ein.

Spiderpig_GER_15 11. Sep 2008 13:12

Re: Objecte ansprechen die während der Laufzeit erstellt wur
 
also sieht das dann so aus?

Delphi-Quellcode:
for i:=1 to 10 do
begin
  with TEdit.create do
  begin
    Width:=20;
    Height:=40;
    Left:=0+(20*i);
    Top:=10;
    name:='MyEdit' + inttostring(i);
  end;
end;
?

DeddyH 11. Sep 2008 13:13

Re: Objecte ansprechen die während der Laufzeit erstellt wur
 
So in der Art. Du solltest aber noch einen Owner angeben und den Parent setzen.

guidok 11. Sep 2008 14:59

Re: Objecte ansprechen die während der Laufzeit erstellt wur
 
Ich würds so machen, wie Bernhard in #3 vorschlägt

Delphi-Quellcode:
var MyEdit: Array[1..10] of TEdit;

...

for i:=1 to 10 do
  begin
  MyEdit[i] := TEdit.Create;
  MyEdit[i].Width := 20;
  ...
  end;

toms 11. Sep 2008 15:14

Re: Objecte ansprechen die während der Laufzeit erstellt wur
 
Zitat:

Zitat von guidok
Ich würds so machen, wie Bernhard in #3 vorschlägt

oder so:

Delphi-Quellcode:
const
  MAX_MYEDITS = 10;
var
  MyEdits: Array[1..MAX_MYEDITS] of TEdit;
  i: Byte;

//..

for i := Low(MyEdits) to High(MyEdits) do
begin
  MyEdits[i] := TEdit.Create(Self);
  MyEdits[i].Width := 20;
  // etc ...
end;

SirThornberry 11. Sep 2008 15:39

Re: Objecte ansprechen die während der Laufzeit erstellt wur
 
auf jeden Fall nicht mit FindComponent.
Wie der Name bereits sagt wird anhand des Namen gesucht was Rechenzeit kostet. Und warum suchen wenn man sich die Suche sparen kann? ;-)
Wenn man aus dem Haus geht steckt mit den Schlüssel ja auch in die Tasche um beim zurück kommen zu wissen wo er ist.
FindComponent an dieser Stelle zu verwenden wäre wie:
Man verlässt das Haus und wirft den Schlüssel dann über die Schulter im Park weg damit man bei der Rückkehr diesen erst suchen muss um wieder in die Wohnung zu kommen.

Spiderpig_GER_15 11. Sep 2008 15:50

Re: Objecte ansprechen die während der Laufzeit erstellt wur
 
anschauliche Beschreibung :mrgreen:

Ich machs ohne Find, schließlich werf ich auch nciht meinen Schlüssel weg :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:36 Uhr.

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