Autor Beitrag
zakoon
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60



BeitragVerfasst: Mo 02.02.09 11:38 
Hallo zusammen,

gibt es eine Möglichkeit, mit Komponentennamen zu hantieren, wie auch mit Strings?

Also dass ich den Wert von vielen Edit-Felder auslesen kann, mit sowas wie:

ausblenden Delphi-Quelltext
1:
2:
for i:= 0 to 34 do
  aryWerte[i] := EditNummer+IntToStr(i).Text;


oder so?

Mein Problem ist, dass ich viele Komponenten zur Designtime auf einem Form platziert habe, und ich nun nach einer möglichst einfachen Möglichkeit suche, die Werte in meine Variablen zu lesen. Einfacher als eben 34 mal zu schreiben aryWert[1] := EditNummer1.Text; ... Wie ließt man die viele Werte am praktischten ein?

Schönen Gruß, Atreiu.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 02.02.09 11:44 
user profile iconzakoon hat folgendes geschrieben Zum zitierten Posting springen:
gibt es eine Möglichkeit, mit Komponentennamen zu hantieren, wie auch mit Strings?
Die gibt es, aber richtig schön ist es nicht, man sollte es, wenn möglich, anders machen.
ausblenden Delphi-Quelltext
1:
2:
for i := 1 to 10 do
  (FindComponent('Edit' + IntToStr(i)) as TEdit).Text := 'bla';

Damit gehts :zustimm:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
zakoon Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60



BeitragVerfasst: Mo 02.02.09 11:52 
user profile iconJayEff hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconzakoon hat folgendes geschrieben Zum zitierten Posting springen:
gibt es eine Möglichkeit, mit Komponentennamen zu hantieren, wie auch mit Strings?
Die gibt es, aber richtig schön ist es nicht, man sollte es, wenn möglich, anders machen.
ausblenden Delphi-Quelltext
1:
2:
for i := 1 to 10 do
  (FindComponent('Edit' + IntToStr(i)) as TEdit).Text := 'bla';

Damit gehts :zustimm:


Dankeschön! Ist es "schöner", 34x die fast selbe Zeile zu schreiben? Wenn man die Kompontenen zur Laufzeit erstellt, weiß ich wie man es besser machen kann. Aber dann werde ich verrückt wegen der Positionierung :D Aber wie sollte man es denn hier (bei Design-Time Komponenten) richtig machen?
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 02.02.09 17:22 
Wenn man für die Designtime 34 Komponenten hat, hat man was falsch gemacht ;-)

Und so schwierig ist die Positionierung zur Runtime nun auch wieder nicht ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 03.02.09 03:26 
Und auch wenn die zur Laufzeit erstellt werden:
Die Benutzung ist nicht besonders schön. In einem StringGrid z.B. kann man die Werte viel einfacher eintragen und ggf. korrigieren, weil man einfach zwischen den Zellen hin und her springen kann. ;-)

Natürlich sieht ein StringGrid nicht besonders toll aus, aber besser als 35 Edits vermutlich schon. ;-)
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Di 03.02.09 12:05 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Natürlich sieht ein StringGrid nicht besonders toll aus, aber besser als 35 Edits vermutlich schon. ;-)


Dafür gibt es ja dann das OwnerDraw, mit dem du dein StringGrid beliebig anpassen kannst. Ist halt nur die Frage nach Aufwand und Nutzen.