Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - writeln-Arie kürzer?


D. Annies - Fr 15.01.10 11:02
Titel: writeln-Arie kürzer?
Hi, Delpher,

mal eine Anfängerfrage: :oops: :oops: :oops:

(Wie) kann man den folgenden Code kürzen?


Delphi-Quelltext
1:
2:
3:
  writeln(t1, edit1.text); writeln(t1, edit2.text); writeln(t1, edit3.text);
  writeln(t1, edit4.text); writeln(t1, edit5.text); writeln(t1, edit6.text);
  writeln(t1, edit7.text); writeln(t1, edit8.text);


Danke, Detlef


Horschdware - Fr 15.01.10 11:13


Delphi-Quelltext
1:
2:
for i:=1 to 8 do
    wrtieln(t1,   (Form1.FindComponent('edit'+IntToStr(i)) AS TEdit).text       );


Phantom1 - Fr 15.01.10 11:13

entweder so:

Delphi-Quelltext
1:
2:
  writeln(t1, edit1.text + #13#10 + edit2.text + #13#10 + edit3.text + #13#10 + edit4.text + #13#10 +
              edit5.text + #13#10 + edit6.text + #13#10 + edit7.text + #13#10 + edit8.text);

oder so:

Delphi-Quelltext
1:
2:
  for i:=1 to 8 do
    writeln(t1, TEdit(FindComponent('edit'+IntToStr(i))).text);

gibt noch viele andere möglichkeiten ^^


D. Annies - Fr 15.01.10 11:30

Vielen Dank, ihr zwei!
Gruß, Detlef :D :D


Tilman - Fr 15.01.10 13:07

Man kann die Edits auch zur Laufzeit erzeugen und dann direkt in ein Array packen.

Wenn ich die Edits zur Entwurfszeit erzeuge, wie du hier, dann weise ich sie manchmal auch einem Array zu (OnCreate)

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  Edits: array[1..10of TEdit;

..

Edits[1] := edit1;
Edits[2] := edit2;
..



Vorteil: ist recht übersichtlich, man hat nur einmal Arbeit (und das vor allem mit Copy & Paste) und kann dann sein eigenes Array benutzen. FindComponent geht aber natürlich auch.


D. Annies - So 17.01.10 20:50

Danke, Tilman, sehr interessant!
Gruß, Detlef