Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать положение компонента относительно десктопа [D6, WinME, Win2k]


SergP ©   (2005-05-26 00:06:00) 

нужно вызвать popupmenu. Но в его методе popup нужно указать координаты.
У меня есть TEdit. При вызове меню нужно чтобы оно отображалось возле эдита, но как оказалось нужно указывать координаты относительно десктопа. Как их попроще узнать?


Gero   (2005-05-26 00:29:00) [1]


>  z:=ClientToScreen(point(left,top));

Не Left, Top, а 0, 0.


SergP   (2005-05-26 00:26:00) [2]

Хм... Почему же тогда при работе этого кода:


type
    TMonth = class(TEdit)
.....

procedure TMonth.MyKeyPress(Sender: TObject; var Key: Char);
var
z:Tpoint;
begin
 z:=ClientToScreen(point(left,top));
 PopupMenu.Popup(z.X,z.Y);
end;


меню появляется не там где находится эдит, т.е.

если пишу
 z:=ClientToScreen(point(left,top));
 PopupMenu.Popup(z.X-left,z.Y-top);

то все нормально...? Что за фигня такая?


Гаврила   (2005-05-26 00:08:00) [3]

ClientToScreen method (TControl)


Gero   (2005-05-26 00:07:00) [4]

ClientToScreen


Наверх

Титульная страница Поиск, карта сайта Написать письмо