Como descobrir sobre qual Objeto o mouse está?

Delphi

28/04/2006

Olá pessoal, como eu faço para descobrir em qual ´Quadrado´ o mouse está ?

eu fiz 2 loop para desenhar um objeto no formulário, ae, quando e passar com o mouse eu precisa descobrir em qual objeto o mouse taria,

eu fiz a função assim

var x, y, fx, fy: integer;
begin
for y := 1 to 10 do
begin
for x := 1 to 10 do
begin
fx := 320 + (x * 32) - (y * 32);
fy := ((y * 16) + (x * 16));
Canvas.Draw(fx, fy, Image1.Picture.Graphic);
end;
end;
end;

ae no evento on mousemove do form eu precisa fazer alguma coisa para descobrir em qual ´Tile´ o mouse está, lembrando que esses quadrado são uns losango, e tem que ser desenhando dessa forma, para ficar certo.

http://rapidshare.de/files/19049991/Isometric.rar.html


Diegogm

Diegogm

Curtidas 0

Respostas

M@gnun

M@gnun

28/04/2006

tente assim:

declare isso em private:

procedure EmQualEsta(Sender: TObject; Shift: TShiftState; X,
Y: Integer);

depois crie essa precedure:

procedure TForm1.EmQualEsta(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin

if Sender = Image1 then
ShowMessage(´Imagem´);

end;

aí na hora em que vc cria a imagem coloca:

OnMouseMove := EmQualEsta;


GOSTEI 0
Diegogm

Diegogm

28/04/2006

[quote:bc7c878f77=´m@gnun´]tente assim:

declare isso em private:

procedure EmQualEsta(Sender: TObject; Shift: TShiftState; X,
Y: Integer);

depois crie essa precedure:

procedure TForm1.EmQualEsta(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin

if Sender = Image1 then
ShowMessage(´Imagem´);

end;

aí na hora em que vc cria a imagem coloca:

OnMouseMove := EmQualEsta;[/quote:bc7c878f77]

No caso eu estou usando canvas, e n vou criar imagens em runtime, ae n tem como colocar um evento


GOSTEI 0
POSTAR