Entwickler-Ecke

Sonstiges (Delphi) - 50mal Panel.Color


Calyptus - Fr 29.10.04 16:07
Titel: 50mal Panel.Color
Ich habe in meinen Programm 50 Panels. Beim Klick auf ein Panel soll diesem eine Farbe zugewiesen werden, die in einer Var ist. Meine Frage: Geht das irgendwie einfacher/schneller als das hier:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Panel1Click(Sender: TObject);
begin
Panel1.Color := Col;
end;

procedure TForm1.Panel2Click(Sender: TObject);
begin
Panel2.Color := Col;
end;

usw...


ps: Hab echt keinen besseren titel gefunden!


uall@ogc - Fr 29.10.04 16:15


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
    procedure FormCreate(Sender: TObject);
    procedure myClick(Sender: TObject);
//....


procedure TForm1.myClick(Sender: TObject);
begin
  TPanel(Sender).Color := clred;
end;

procedure TForm1.FormCreate(Sender: TObject);
var i: integer;
begin
  for i := 1 to 4 do
    TPanel(FindComponent('Panel'+inttostr(i))).OnClick := myClick;
end;


jasocul - Fr 29.10.04 16:15

Du kannst im OI auch aussuchen, welche Ereignis-Routine genommen werden soll.
Du brauchst das also nur für ein Panel machen und bei den anderen im OI darauf verweisen. Dafür ist im OI beim Ereignis (OnClick) rechts so ein kleines Symbol.