Cześć!
W jaki sposób zamiast pisać przykładowo:
button1.caption:=inttostr(random(100));
…
button100.caption:=inttostr(random(100));
Mogę napisać to szybciej?
Cześć!
W jaki sposób zamiast pisać przykładowo:
button1.caption:=inttostr(random(100));
…
button100.caption:=inttostr(random(100));
Mogę napisać to szybciej?
Możesz w pętli skorzystać z FindComponent
, następnie rzutować wynik na konkretną klasę i dobrać się do właściwości Caption
. Niżej dwie wersje, pierwsza podstawowa, druga z wykorzystaniem helperów (nie wiem czy Twoje Delphi takowe wspiera):
var
I: Integer;
begin
for I := 0 to 100 do
(FindComponent('Button' + IntToStr(I)) as TButton).Caption := IntToStr(Random(100));
var
I: Integer;
begin
for I := 0 to 100 do
(FindComponent('Button%d'.Format([I])) as TButton).Caption := Random(100).ToString();
Druga napisana w oparciu o funkcjonalność Free Pascala, w razie czego. Sam wolałbym najpierw pobrać referencję, a dopiero później zmodyfikować co trzeba. Czyli w ten sposób:
var
Button: TButton;
Index: Integer;
begin
for I := 0 to 100 do
begin
Button := FindComponent('Button%d'.Format([Index])) as TButton;
Button.Caption := Random(100).ToString();
end;