Ich habe mal ein Beispiel geschrieben (da ich Deine Delphi-Version nicht kenne, vorsichtshalber in Delphi 7). Zunächst die Definition des Formulars:
Delphi-Quellcode:
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
FPanels: array[1..5, 1..5] of TPanel; // 5 Reihen zu je 5 Panels
procedure InitializePanels; // Initialisierungsroutine zum Befüllen des Arrays
procedure DoOnPanelClick(Sender: TObject); // Ereignishandler für das OnClick jedes Panels
public
{ Public-Deklarationen }
end;
Jetzt die einzelnen Methoden: InitializePanels erzeugt die Panels zur Laufzeit, richtet sie aus und weist ihrer Tag-Eigenschaft eine zufällige Zahl zu. Diese wird auch gleich mit dargestellt.
Delphi-Quellcode:
procedure TForm1.InitializePanels;
const
PANELWIDTH = 40; //Kantenlänge jedes Panels
var
x, y: integer;
ALeft, ATop: integer;
Panel: TPanel;
begin
ATop := 10;
for y := Low(FPanels) to High(FPanels) do
begin
ALeft := 10;
for x := Low(FPanels[y]) to High(FPanels[y]) do
begin
Panel := TPanel.Create(self);
Panel.Parent := self;
Panel.Left := ALeft;
Panel.Top := ATop;
Panel.Width := PANELWIDTH;
Panel.Height := PANELWIDTH;
Panel.Tag := Random(99) + 1;
Panel.Caption := IntToStr(Panel.Tag);
Panel.OnClick := DoOnPanelClick;
FPanels[x, y] := Panel;
inc(ALeft, PANELWIDTH);
end;
inc(ATop, PANELWIDTH);
end;
end;
Jetzt der zugewiesene Handler für das OnClick (Methode DoOnPanelClick):
Delphi-Quellcode:
procedure TForm1.DoOnPanelClick(Sender: TObject);
begin
if Sender is TPanel then
ShowMessage(IntToStr(TPanel(Sender).Tag));
end;
Und im OnCreate-Ereignis des Formulars wird der Zufallsgenerator angeworfen und die InitializePanels-Methode aufgerufen.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
InitializePanels;
end;
Hilft Dir das weiter?