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

Вниз

Popup Menu   Найти похожие ветки 

 
Vox ©   (2002-10-09 18:48) [0]

Народ, есть вопросик. Я делаю динамическое меню. Пишу:

procedure TForm1.tcMainMouseDown(Sender: PControl;
var Mouse: TMouseEventData);
var Menu : PMenu;
P : TPoint;
begin
Menu := NewMenu(tcMain.TC_Pages[0], 900, ["Закрыть", "Открыть"], nil);
P := MakePoint(Mouse.X, Mouse.Y);
ShowMsg("X: "+Int2Str(P.X)+"; Y: "+Int2Str(P.Y),0);
P := tcMain.Client2Screen(P);
Menu.Popup(P.X, P.Y);
Menu.Free;
end;


tcMain - это TabControl

Почему так все работает, но если убрать ShowMsg(), то вылетает Access Violation. В чем дело?


 
Vox ©   (2002-10-09 19:16) [1]

Menu := NewMenu(tcMain.TC_Pages[0], 900, ["Закрыть", "Открыть"], nil);

Извините, здесь конечно же
Menu := NewMenu(tcMain, 900, ["Закрыть", "Открыть"], nil);

Но дела это не меняет. Все тоже самое


 
Gandalf   (2002-10-09 22:24) [2]

Не вылетает, ни так, ни так. KOLnMCK 1.51, D5, WinXP


 
blackalex ©   (2002-10-10 10:36) [3]

Попробуй по другому.

procedure TForm1.tcMainMouseDown(Sender: PControl;
var Mouse: TMouseEventData);
var
Point : TPoint;
Menu PMenu;
begin
if Mouse.Button = mbRight then begin
Menu := NewMenu(tcMain.TC_Pages[0], 900, ["Закрыть", "Открыть"], nil);
GetCursorPos(Point);
Menu.PopUp (Point.X, Point.Y);
Menu.Free;
end;
end;


 
Vladimir Kladov   (2002-10-14 12:06) [4]


> Menu.Popup(P.X, P.Y);
> Menu.Free;
> end;

А почему вы решили, что кто-то будет дожидаться, пока меню на экране не отщелкнется? Следом сразу же выполняется код, который пытается меню убить.

У Gandalf"а под ХР может и не вылетает. Но и меню появляться вроде бы не должно. Хотя... пути ХР неисповедимы :)


 
Gandalf   (2002-10-14 21:27) [5]

>У Gandalf"а под ХР может и не вылетает. Но и меню появляться >вроде бы не должно. Хотя... пути ХР неисповедимы :)

Оно появляется и сразу исчезает, но факт появления заметен, правда у меня WindowFX стоит может и по этому...



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

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

Наверх




Память: 0.47 MB
Время: 0.022 c
1-97615
Klez-X
2003-06-19 13:50
2003.06.30
Работа с реестром


14-97861
N_
2003-06-11 22:29
2003.06.30
Если есть Свет


3-97547
Sliften
2003-06-06 01:08
2003.06.30
как зделать вставку из одной таблици в другую при помощи SQL


1-97668
Orion2
2003-06-13 11:25
2003.06.30
Получение скриншота панели


1-97690
McSimm2
2003-06-17 16:02
2003.06.30
Свои цвета для DrawEdge()