Autor Beitrag
Hirb
Hält's aus hier
Beiträge: 2



BeitragVerfasst: So 01.11.09 15:48 
Ich würde gerne meinen Code etwas vereinfachen/verkürzen bzw. nicht so viel wiederholen. Hier z.B. möchte ich einige Elemente ein und ausblenden und es nicht für jedes Element einzeln schreiben. also nicht so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
1 label2.visible:=true;
2 label3.visible:=true;
3 label4.visible:=true;
...

Ich habe versucht es mit with ... do ... zu machen, jedoch verwendet er immer nur das letzte also in dem unten genannten Fall wird, dann nur mit edit4 visible:=true gemacht. Meine Frage ist jetzt, wie ich das richtig machen kann.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
1      with label2, label3, label4, label5, label6, edit1, edit2, edit3, edit4 Do
2      begin
3          visible:=true;
4      end;

Moderiert von user profile iconNarses: Quote- durch Delphi-Tags ersetzt
Moderiert von user profile iconNarses: Topic aus VCL (Visual Component Library) verschoben am So 01.11.2009 um 15:13
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: So 01.11.09 16:11 
Hi und :welcome: im Forum!

Es gibt mehrere Möglichkeiten:
o FindComponent() + For-Schleife
o Objekte in einem Array ablegen (Vorteil: Gestattet den Komponenten sinnvolle Namen zu geben)
o Verwendung eines Frames, Tabsheets etc.


Zuletzt bearbeitet von Marc. am So 01.11.09 16:15, insgesamt 3-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19326
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 01.11.09 16:13 
Hallo und :welcome: !

Das with ist dafür gedacht, dass man auf Kosten der Lesbarkeit z.B. das Label weglassen kann, sich die Befehle dann also automatisch darauf beziehen. Das erkauft man sich zwar mit Unübersichtlichkeit und schwer zu findenden Fehlern, aber manchen ist das eben egal.

Beispiel für with:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
with LabelX do
begin
  Caption := 'Hallo';
  Left := 100;
end;
Beides wird dann auf den Label bezogen.

Für die andere Richtung, also den selben Befehl auf mehrere Komponenten anzuwenden, ist with nicht gedacht oder geeignet. Wie es dort geht, hat user profile iconMarc. ja bereits geschrieben.
Hirb Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: So 01.11.09 16:16 
ok danke erstmal für die Hilfe, jedoch wäre ein kurzes Beispiel in Codeform für das oben genannte Problem wirklich sehr hilfreich, da ich noch wenig Erfahrung mit Delphi habe.

bzw. ist das überhaupt sinnvoll für solche kleinen Sachen ein irgendwas davon anzulegen?

o FindComponent() + For-Schleife
o Objekte in einem Array ablegen (Vorteil: Gestattet den Komponenten sinnvolle Namen zu geben)
o Verwendung eines Frames, Tabsheets etc.