Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2003.06.30;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "KOL";
Текущий архив: 2003.06.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.006 c
1-97686
vv_fran
2003-06-17 15:03
2003.06.30
Как очистить буфер клавиатуры?


14-97879
Видеоман
2003-06-09 23:08
2003.06.30
Как склеить mpg-файлы?


3-97498
linker
2003-06-05 10:51
2003.06.30
База данных из вордовских файлов


1-97676
Миша
2003-06-17 14:53
2003.06.30
Отображение вывода программы


14-97787
Silentium!
2003-06-13 11:49
2003.06.30
ШАГ в for





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский