Fórum Como descobrir sobre qual Objeto o mouse está? #320191
28/04/2006
0
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
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
Curtir tópico
+ 0
Responder
Posts
28/04/2006
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;
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;
Responder
Gostei + 0
28/04/2006
Diegogm
[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
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
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)