Procedura

0

Witam.
Czy można napisac procedure, ktora wykona okreslona czynnosc dla wielu komponentow zamiast dla kazdego komponentu pisac np. VrBlinkLed:=ClBlue i tak np do VrBlinkLed100:=clBlue.
Wszystko to ma dzialac dla zdazenia OnClick

Probowalem: w Type
[code]
procedure TVrBlinkLedClick(Sender :TObject);

W implementation
procedure TForm1TVrBlinkLedClick(Sender :TObject);
var
led: TVrBlinkLed;
begin
led.Palette1.High:=ClBlue;
End;
[/code]

Prosze o pomoc [cya]

0

Można np. tak:

procedure TForm1.Button2Click(Sender: TObject);
var
  I : Integer;
begin
  for I := 0 to ComponentCount - 1 do
  begin
    if Form1.Components[I] is TLabel then
      (Form1.Components[I] as TLabel).Color := $FFFFFF;
  end;
end;

A jeżeli chcesz zastosowac to tylko do niektórych komponentów danej klasy to w ustaw im np. taką samą właściwośc Tag, a pożniej sprawdzaj czy dany komponent ma Tag o takiej wartości.

0

tak, tylko ze chcialbym zmieniac kolor komponentu w momencie klikniencia na niego a nie wszystkich od razu :)

0

O ile dobrze cie zrozumiałem to dajesz coś takiego:

procedure TForm1.Label1Click(Sender: TObject);
begin
  (Sender as TLabel).Color := $FFFFFF;
end;

I po kliknięciu na komponent zmienia on swój kolor. Teraz tylko zaznaczasz pozostałe komonenenty i zmieniasz im w Object Inspector zdarzenie OnClick na Label1Click.

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