Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Иконка в трее


Автор: Foley 3.5.2006, 14:30
Подскажите как мне вычислить координаты курсора на рабочем столе, мне это необходимо для контекстного меню (Popup-menu) у меня прога помещает свой значок в трей и творит там свои делишки. Обрабатываю WM_RBUTTONDOWN (появляется, только не там где надо, а если четко установить то при изменении разрешения они изменятся) пишу PopupMenu1.Popup(x,y), но четко не представляю как координаты вычислить( чтоб попуп на иконке был)… На форме легко вычислить, а на десктопе не могу догадаться. Пробовал всяко...  

Автор: _hunter 3.5.2006, 14:36
экранные координаты можно получить через TMouse.CursorPos
а что ты понимаеш под "оординаты курсора на рабочем столе"? 

Автор: Guedda 3.5.2006, 14:39
У меня в программе так:
Код

type
  TForm1 = class(TForm)
  //...
  private
    procedure wmusr(var Msg : TMessage); message WM_USER + 1;
  //...


procedure Tform1.wmusr(var Msg : TMessage);
var
  P : TPoint;
begin
  GetCursorPos(P);
  SetForegroundWindow(Application.MainForm.Handle);
  PopupMenu1.Popup(P.X, P.Y);
  Msg.Result := 0;
end;
 

Автор: Alexeis 3.5.2006, 14:41
Код

var
  p : TPoint;

GetCursorPos(p); 


Опоздал...  

Автор: Foley 3.5.2006, 14:50
Цитата(_hunter @  3.5.2006,  14:36 Найти цитируемый пост)
а что ты понимаеш под "оординаты курсора на рабочем столе"?  

они же просто координаты, просто я имел ввиду что когда курсор над формой моей проги, то его положение вычислить проще пареной репы... а когда нету формы то сложней...
с пойнтом пробовал, но не знал как использовать его координаты... спасибо всем...
 

Автор: Snowy 3.5.2006, 14:50
Цитата(Guedda @  3.5.2006,  14:39 Найти цитируемый пост)
GetCursorPos(P);
Зачем? В Mouse.CursorPos все уже есть.
PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y); 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)