s.Visible, gdzie s zmienna String, co jest nie tak?

0

Witam,
mam taką procedurę

procedure TForm1.Szachownica1Click(Sender: TObject);

var
  i : Integer;
  s : String;

begin
  For i:=1 To 8 Do
  begin
    s:='PionCzarny'+IntToStr (i);
    s.Visible := True;
  end;

end;

Chcę żeby ustawiała właściwość Visible komponentów PionCzarny1 - PionCzarny8 na True.
Kompilator wskazuje błąd w tym miejscu:

s.Visible := True;
0

W tym przypadku s nie jest komponentem tylko zmienną więc nie możesz ustawić zmiennej takiej wartości.
Zmienna nie jest komponentem VCL.

0

Poczytaj o FindComponent

Przykład, natomiast, można przerobić na:

procedure TForm1.Szachownica1Click(Sender: TObject);
var
 i: byte;
begin
 for i := 8 downto 1 do TPanel(FindComponent('PionCzarny' + inttostr(i))).Visible := True;
end;

... przy założeniu, że komponent który nazwany jest u ciebie "PionCzarny", to TPanel.

0

Czyli mam rozumieć, ze w grę wchodzi tylko ręczne nadawanie właściwości każdemu komponentowi?

0

Dzięki Opi :) Ten post wyżej napisałem nie widząc twojej odpowiedzi, a nie mam jak usunąć (nie jestem zarejestrowany).
Pozdro!

1 użytkowników online, w tym zalogowanych: 0, gości: 1