Форум: "WinAPI";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];
ВнизКак определить позицию курсора мышки на форме Найти похожие ветки
← →
Pomestnik (2005-01-01 14:26) [0]Как определить позицию курсора мышки на форме??
Ну например есть форма 300х300 Если курсор находится в е центре этой
формы, то выводятся координаты курсора относительно формы а не экрана
← →
Vaitek © (2005-01-01 15:41) [1]Попробуй в хелпе поискать CursorPos или что-то типа того.
← →
Sirex (2005-01-01 15:59) [2]если это обычная форма то в событии OnMouseMove формы
параметры x и y. Но если надо определить в другом месте, то
var p : TPoint;
begin
GetCursorPos(p);
Dec(p.x,Form1.Left+FRMW);// +4 ширина
Dec(p.y,Form1.Top+FRMH);
Caption := Format("%d %d",[p.x,p.y]);
end;
Вместо FRMW - подставь 4 (или другое значение в зависимости от ширины рамки формы, т.к. свойство left формы относительно его левого края в окне, а не левого края рабочей части),
Вместо FRMH - кажеться 23 (ширина заголовка)
Вообщем можешь подогнать, не знаю как по-другому
Естественно, если formStyle = bsNone, то FRMW и FRMH = 0.
← →
abcd (2005-01-01 19:03) [3]procedure TForm1.Timer1Timer(Sender: TObject);
var p : TPoint;
begin
GetCursorPos(p);
Label1.Caption :=IntToStr(p.X-ClientOrigin.X)+" X "+IntToStr(p.Y-ClientOrigin.Y);
end;
← →
grom (2005-01-01 20:24) [4]procedure WndProc(var Msg : TMessage); override;
...
procedure TForm1.WndProc(var Msg : TMessage);
begin
Label1.Caption :=IntToStr(Mouse.CursorPos.X-ClientOrigin.X)+" X "+IntToStr(Mouse.CursorPos.Y-ClientOrigin.Y);
inherited;
end;
← →
Polevi © (2005-01-02 11:51) [5]ScreenToClient, ClientToScreen
← →
Andrewp © (2005-01-04 20:51) [6]procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
end;
x и y и есть позиция курсора на форме
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.04 c