Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Vereinfachen - gleicher Befehl, andere Komponente! (https://www.delphipraxis.net/2084-vereinfachen-gleicher-befehl-andere-komponente.html)

fedderle 6. Jan 2003 13:24


Vereinfachen - gleicher Befehl, andere Komponente!
 
Hi!

Hab mal ne Frage!

Ich möchte ca. 30 Labels gleichzeitig sichtbar machen!

Muss ich dann den Befehl 30 mal eingeben? Also Bsp:

LabelB1.Visible := true;
LabelB2.Visible := true;
...
LabelB30.Visible := true;


Oder geht das auch anders? Wenn ja wie?

Alexander 6. Jan 2003 13:36

das kannst du am besten mit einer For-Schleife machen (for i:= to 29 do....)[/delphi]

fedderle 6. Jan 2003 13:41

An eine For-Schleife hab ich auch schon gedacht. Ich hab nur keine Ahnung, wie ich dann den Befehl in der Schleife schreiben soll

for i := 1 to 29 do ???

Daniel 6. Jan 2003 13:46

Hallo,

also ... wenn Deine Labels die Namen "LabelB1" bis "LabelB30" tragen, würde ich auch eine Schleife bis 30 vorschlagen. :wink: Du kannst dafür die Methode "FindComponent" nutzen. Diese gestattet es, Komponenten über ihren Namen anzusprechen:

Delphi-Quellcode:
For index:= 1 To 30 Do
Begin
  TLabel( FindComponent('LabelB'+IntToStr(index)) ).Visible:= TRUE;
End;
Allerdings musst Du aufpassen, keines der Labels zu Löschen, ohne die Schleife anzupassen, da es sehr hässliche Laufzeit-Fehlermeldungen gibt, wenn eines der Labels nicht gefunden werden konnte. Zusätzlich könntest Du einen TRY .. EXCEPT - Block einsetzen. Dies wäre mit Sicherheit von Vorteil.

sakura 6. Jan 2003 13:47

Delphi-Quellcode:
for I := 0 to 29 do
  TLabel(FindComponent('LabelB' + IntToStr(I))).Visible := True;
Suche im Forum mal nach FindComponent. Es gibt viele Beispiele dafür.

...:cat:...

Christian Seehase 6. Jan 2003 13:47

Moin Fedderle,

erst einmal herzlich willkommen.

Um Dein Problem lösen zu können, kannst Du mal hier im Forum nach FindComponent suchen.
Dann solltest Du einige Fundstellen haben, die Dich bei dieserm Problem weiterbringen. (wenn ich nicht irre sogar mit kompletter Lösung).

[EDIT]Mist, zu spät :mrgreen:[/EDIT]

CalganX 6. Jan 2003 14:23

Rekord: 3 auf einmal!!! :lol:
Besser ist es allerdings (soweit habe ich das mitbekommen), wenn man statt
Delphi-Quellcode:
TLabel( {...} )
folgendes nimmt:
Delphi-Quellcode:
( FindComponent( {...} ) as TLabel)
Chris

fedderle 7. Jan 2003 12:30

Moin!

Danke! Funktioniert super mit FindComponent.


:dancer: Thanx :dancer:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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