Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi wie ist der Code für folgendes Problem zu schreiben? (https://www.delphipraxis.net/104565-wie-ist-der-code-fuer-folgendes-problem-zu-schreiben.html)

Jerry 6. Dez 2007 14:47


wie ist der Code für folgendes Problem zu schreiben?
 
hallo zusammen

Wenn ich in einer Unit folgende Felder plaziert habe:

edit1
edit2
edit3
edit4
edit5

(hier zu beachten, dass es aufummerierend ist von 1 bis 5)

Ich möchte nun in einer Schleife edit1.Text / edit2.Text / edit3.text usw.
in eine Combobox füllen.

So z.B: for i:=1 to 5 if edit+i.text <> '' then ...items.add(edit+i.text)

Geht sowas in Delphi?
Vielen Dank für einen Input!

Grüsse vom Bodensee.

DeddyH 6. Dez 2007 14:49

Re: wie ist der Code für folgendes Problem zu schreiben?
 
Nicht sehr effizient, aber versuch es mal so:
Delphi-Quellcode:
for i := 1 to 5 do
  ComboBox1.Items.Add(TEdit(FindComponent('Edit' + inttostr(i))).Text);
[edit] Besser wäre es z.B., die Tag-Property der Edits auf eine bestimmte Zahl zu setzen, dann musst Du das Components-Array nur einmal durchlaufen. [/edit]

inherited 6. Dez 2007 14:54

Re: wie ist der Code für folgendes Problem zu schreiben?
 
Du könntest dir auch ein Array of TEdit basteln und die Edits per Hand erzeugen. Dann kannst du sie direkt in einer Schleife ansprechen (und es ist um einiges effizienter)
Delphi-Quellcode:
var
  MyEdits: Array of TEdit;
...
SetLength(MyEdits,5);
for i := 0 to 4 do //erzeugen
begin
  MyEdits[i] := TEdit.Create(self);
  MyEdits[i].Parent := self;
  MyEdits[i].SetBounds(20, i*50, 100, 100);
end;

...

for i := 0 to 4 do
begin
  if MyEdits[i].Text = '' then
    MyEdits[i].Text := 'We have joy, we have fun, we have Linux on our Sun!';
end;
Ungetestet(tm)

Jerry 6. Dez 2007 15:16

Re: wie ist der Code für folgendes Problem zu schreiben?
 
vielen Dank 2 gute Ansätze!
Ich werde beide testen.

Wünsche heute allen einen lieben "Samichlaus" ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:14 Uhr.

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