![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
дело состоит в том..как можно с помощью клика мишки на форме рисунок должен "поплисть" на место клика мишки..как определить координаты клика мишки...
вот есть код ... Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Timer1: TTimer;
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
dx, dy, g:real;
implementation
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var x1,y1: integer;
begin
x1:=x-Image1.Left;
y1:=y-Image1.Top;
g:=sqrt(sqr(x1)+sqr(y1));
dx:=g / x1;
dy:=g / y1;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Image1.Top:=Image1.Top+round(dy);
Image1.Left:=Image1.Left+round(dx);
end;
end. |
|
#2
|
|||
|
|||
|
как определить координаты места на которое било произведенно нажатие мишки на форме в делфи..
|
|
#3
|
||||
|
||||
|
Axotnik, видишь вот это
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Вот эти X и Y и есть координаты курсора в момент нажатия кнопки. |
|
#4
|
||||
|
||||
|
А если делать в OnClick, то можно сделать так:
Код:
var CPos: TPoint; begin ... GetCursorPos(CPos); ScreenToClient(CPos); ... end; |
|
#5
|
|||
|
|||
|
Можно вообще поступить так:
var CurPos:TRect; begin GetCursorPos(CurPos); end; |
|
#6
|
|||
|
|||
|
А как найти координаты курсора в TImage? Я так понимаю в вашем случае координаты будут считаться относительно формы.
И получить мне координаты необходимо в числах т.е. х=..., у=... Делаю так Код:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.Canvas.TextOut(X,Y,'point');
Memo1.Text:=Memo1.Text+ IntTostr(X) + IntTostr(Y);
end;Последний раз редактировалось Unocide, 23.02.2008 в 22:33. |