Sytuacja wyglada tak.
Mam PANEL1 o rozmiarach 400x400 i w nim umieszczam 100 speedbuttonow o rozmiarach 40x40 kazdy. Robie to w taki sposob:
var
plansza: array[1..10,1..10] of TSpeedButton;
begin
x:= 0;
y:= 0;
{dwie petle tworzace plansze}
for i:=1 to 10 do
begin
for j:=1 to 10 do
begin
plansza[i,j]:=TSpeedButton.create(Form1);
plansza[i,j].height:=40;
plansza[i,j].width:=40;
plansza[i,j].top := (y);
plansza[i,j].left := (x);
plansza[i,j].parent:=panel1;
y:=y+40;
end;
x:=x+40;
y:=0;
end;
Moje pytanie brzmi. Jak sprawdzic, ktory speedbutton zostal klikniety? W standardowym SpeedButtonie sprawa prosta. Zdarzenie OnClick ew Down, ale tutaj tych speedbuttonow fizycznie NIE MA. Są one tworzone dopiero w trakcie działania programu. Domyslam sie, ze mozna pomiedzy linie powyzej wstawic cos w stylu
plansza[i,j].OnClick (skocz do linii sprawdzania, ktory SpeedButton jest down.).
W tym sprawdzaniu domyslam sie, ze mozna znowu walnac dwie petle FOR.. i zrobic cos w stylu: IF plansza[i,j].down = true then PoziomoX := i;
a wy jak myslicie? Jak wykryc klikniecie i wykryc KTORY to Speedbutton zostal klikniety?