Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.01;
Скачать: CL | DM;

Вниз

Позиция Popupmenu. Как привязать к нижнему левому углу.   Найти похожие ветки 

 
SergP.   (2005-12-03 15:24) [0]

Имеется попапменю, которое появляется при нажатии на кнопку.


procedure TFrmMain.BtnMenuClick(Sender: TObject);
var
foo: TPoint;
begin
foo.X:=BtnMenu.Left;
foo.Y:=BtnMenu.Top;
foo:=ClientToScreen(foo);
Pmmain.Popup(foo.x,foo.y);
end;


получается что я позиция привязана к верхнему левому углу..
Как можно привязать к нижнему левому?


 
malenkii_myk   (2005-12-03 16:13) [1]

BtnMenu.Top+BtnMenu.Heigth;


 
SergP.   (2005-12-03 20:02) [2]


> BtnMenu.Top+BtnMenu.Heigth;


Неа. во первых минус а не плюс, а во вторых нужно к нижнему левому углу попапменю а не кнопки


 
begin...end ©   (2005-12-03 20:04) [3]

> SergP.   (03.12.05 20:02) [2]

Позицию PopupMenu нужно привязать к нижнему левому углу PopupMenu? Это как?


 
Zeqfreed ©   (2005-12-03 20:08) [4]

begin...end ©   (03.12.05 20:04) [3]
Думаю, что автор хочет, чтобы меню открывалось не "сверху-слева вниз", а "снизу-слева вверх" :)


 
Sergp.   (2005-12-03 20:12) [5]


> <Цитата>
>
>
>
> Zeqfreed ©  (03.12.05 20:08) [4]
>
> begin...end ©  (03.12.05 20:04) [3]
> Думаю, что автор хочет, чтобы меню открывалось не "сверху-
> слева вниз", а "снизу-слева вверх" :)

Да. Именно так. Чтобы  в
procedure TFrmMain.BtnMenuClick(Sender: TObject);
var
foo: TPoint;
begin
foo.X:=BtnMenu.Left;
foo.Y:=BtnMenu.Top;
foo:=ClientToScreen(foo);
Pmmain.Popup(foo.x,foo.y);
end;

попапменю вылазило выше кнопки


 
Zeqfreed ©   (2005-12-03 20:18) [6]

Sergp.   (03.12.05 20:12) [5]
Контекстное меню "вылазит" туда, куда оно поместится, отдавая предпочтение направлению вниз. Вы хотите самостоятельно обрабатывать ситуации, когда при открытии его вверх оно будет выходить за пределы экрана, или эта ситуации допустима в вашей задаче? Ну, в таком случае, могу предложить писать свой аналог меню или просчитывать позицию меню в зависимости от его высоты.


 
begin...end ©   (2005-12-03 20:27) [7]

Вызвать TrackPopupMenu с флагом TPM_BOTTOMALIGN. Возрадоваться.


 
Sergp.   (2005-12-03 20:28) [8]

Если меню не влазит в экран, то пусть оно рнасполагается как может. Но если влазит, то пусть располагается как я хочу - т.е. пусть привязывается в нижнему левому углу.


 
Zeqfreed ©   (2005-12-03 20:30) [9]

Zeqfreed ©   (03.12.05 20:18) [6]
Мои сведения были устаревшими :)
Согласно MSDN (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/menus/menur eference/menufunctions/trackpopupmenu.asp) поддерживается флаг TPM_BOTTOMALIGN для ф-ции TrackPopupMenu, позволяющий открывать меню вверх, относительно указанной y координаты. В справке Delphi, к сожалению, такого не найти, хотя константа прописана в Windows.pas.


 
Sergp.   (2005-12-03 21:01) [10]


> Zeqfreed ©  (03.12.05 20:30) [9]
>
> Zeqfreed ©  (03.12.05 20:18) [6]
> Мои сведения были устаревшими :)
> Согласно MSDN (http://msdn.microsoft.com/library/default.
> asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/menus/menur
> eference/menufunctions/trackpopupmenu.asp) поддерживается
> флаг TPM_BOTTOMALIGN для ф-ции TrackPopupMenu, позволяющий
> открывать меню вверх, относительно указанной y координаты.
>  В справке Delphi, к сожалению, такого не найти, хотя константа
> прописана в Windows.pas.


Не проверял. Но ИМХО это то что мне нужно. Проверю сейчас. Большоет спасибо.



Страницы: 1 вся ветка

Текущий архив: 2006.01.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.05 c
14-1134027775
oleggar
2005-12-08 10:42
2006.01.01
arj/rar formats


5-1119509948
Другой Дмитрий
2005-06-23 10:59
2006.01.01
Мне необходимо отследить переименование проекта, для чего...


14-1134042720
Mike Kouzmine
2005-12-08 14:52
2006.01.01
Скончался Георгий Жженов


2-1134425166
kreyl
2005-12-13 01:06
2006.01.01
Десятичная точка


14-1134158403
VirEx
2005-12-09 23:00
2006.01.01
Mail в Php