ich finde das mit einem image auch die einfachste variante. - Und du musst auch nicht 225 mal das OnClick schreiben wenn du ein array nutzt. Hier mal bissl source falls du es doch mit mehreren Images machen willst
Delphi-Quellcode:
TForm1 = class(TForm)
[...]
fImages: Array[1..225] of TImage;
procedure FImgClick(Sender: TObject);
[...]
[...]
procedure TForm1.OnCreateProc(Sender: TObject);
var LCount, LX, LY, LWidth: Integer;
begin
LWidth := 20;
LX := 0;
LY := 0;
for LCount := 1 to 225 do
begin
fImages[LCount] := TImage.Create(Self);
fImages[LCount].Parent := Self;
fImages.SetBounds(LX, LY, LWidth, LWidth);
fImages.Tag := LCount; //um später herauszufinden welches geklickt wurde
fImages.OnClick := FImgClick;
inc(LX, LWidth);
if LX = 15 * LWidth then
begin
LX := 0;
inc(LY, LWidth);
end;
end;
end;
[...]
procedure TForm1.FImgClick(Sender: TObject);
var LImage: TImage;
begin
if Sender is TImage then
begin
LImage := TImage(Sender);
//mit LImage.Tag findest du jetzt raus welches Image geklickt wurde
end;
end;
[...]
procedure TForm1.OnDestroyProc(Sender: TObject);
var LCount: Integer;
begin
//freigeben der Images
for LCount := 1 to 225 do
fImages[LCount].Free;
end;