Главная страница
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.045 c
2-1134469781
Anton_m
2005-12-13 13:29
2006.01.01
Как найти файлы по маске в сетевых расшаренных папках?


14-1133426364
VictorT
2005-12-01 11:39
2006.01.01
Пропал Ketmar, тут его многие знали, может, кто межет чем-то


4-1130502177
Jimm
2005-10-28 16:22
2006.01.01
Убрать границы у combobox, button ...


2-1134545383
snake77
2005-12-14 10:29
2006.01.01
clipboard


14-1133895872
Дмитрий_05
2005-12-06 22:04
2006.01.01
Подключить два компъютера к интернету