Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Quelltext verkürzen (https://www.delphipraxis.net/96620-quelltext-verkuerzen.html)

Mooshead 27. Jul 2007 15:10


Quelltext verkürzen
 
Hallo ich hätte da mal eine kleine Frage:

wenn ich z.B. viele Labels habe und allen die selbe Beschriftung geben möchte. kann man das auch kürzer schreiben als so:

Delphi-Quellcode:
begin
   label1.caption:='abc';
   label2.caption:='abc';
   label3.caption:='abc';
                          //usw....
   labelx.caption:='abc';
end;

mkinzler 27. Jul 2007 15:11

Re: Quelltext verkürzen
 
Schleife mit .FindComponent

Cyberbob 27. Jul 2007 15:19

Re: Quelltext verkürzen
 
Delphi-Quellcode:
for i := 1 to x do
  TLabel(Findcomponent(format('Label%d', [i]))).Caption := 'abc';
Achte hierbei aber darauf, dass du die Labels entsprechend benennen musst.

marabu 27. Jul 2007 16:20

Re: Quelltext verkürzen
 
Hallo,

abgesehen von der Identifizierung der Labels über ihren Komponentennamen gibt es noch andere Möglichkeiten. Du kannst die Labels an ihrem Tag-Value erkennen und über ihren Owner besuchen - oder vielleicht haben alle relevanten Labels einen gemeinsamen Parent:

Delphi-Quellcode:
procedure SetCaptionOfLabels(aParent: TWinControl; aCaption: string);
var
  i: Integer;
begin
  for i := 0 to Pred(aParent.ControlCount) do
    if aParent.Controls[i] is TLabel then
      with aParent.Controls[i] as TLabel do
        Caption := aCaption;
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  SetCaptionOfLabels(Panel, 'abc');
end;
Grüße vom marabu

mkinzler 27. Jul 2007 16:24

Re: Quelltext verkürzen
 
Oder du legst einmalig einen Array für die Referenzen an.

Mooshead 27. Jul 2007 16:50

Re: Quelltext verkürzen
 
Okay vielen Dank an alle.
Mit dem FindComponent habt ihr mir weiter geholfen. Ich wusste nur einfach nicht nach was ich suchen sollte aber jetzt weiß ich es ja :cheers: :dance:


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