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

Вниз

Как создать меню с помощью Win API?   Найти похожие ветки 

 
oleg_SYS ©   (2005-02-04 10:03) [0]

У меня почему-то получается меню размером где-то 5X10 и мне не удаётся узнать выбранный пункт меню. В чём ошибка?


procedure MenuSelect(var msg : TMessage); message wm_MenuSelect;

var
 h : integer;

procedure TForm1.MenuSelect;
var
d : array[0..49] of Char;
begin
GetMenuString(h,msg.WParam,d,50,0);
form1.Caption:=strpas(d);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
f : integer;
begin
h := CreateMenu;
AppendMenu(h,MF_STRING,123456,"MyText");
if TrackPopupMenu(h,TPM_CENTERALIGN or TPM_LEFTBUTTON or TPM_RETURNCMD,50,50,0,form1.Handle,nil) then
ShowMessage(‘Выбран пункт меню: " + Form1.Caption);
DestroyMenu(h);
end;


 
alpet   (2005-02-04 12:41) [1]

Для меню надо делать обработчики сообщений.
Функция TrackPopupMenu всего лишь выводит его, и ждет пока пользователь не выберет какой нибудь пункт.

После этого в форму посылается сообщение WM_COMMAND, и в параметре wParam находится индетификатор элемента меню.

Функцию обработки сообщения надо создать в классе формы:

TForm1 = class (TForm)
...
public
procedure  OnCommand (var msg: TMessage); message WM_COMMAND;
end;

В реализации этой функции можно обработать выбор тех или иных пунктов:

procedure OnCommand (var msg: TMessage);
begin
if (LoWord (msg.wParam) = MI_ID01) then
// Код ...
end;



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

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

Наверх




Память: 0.46 MB
Время: 0.024 c
4-1107489071
guest_Dmitry
2005-02-04 06:51
2005.03.20
Открытие/закрытие приложения, ...


3-1108553956
Gost
2005-02-16 14:39
2005.03.20
Как просканировать таблицу (парадокс) с последней записи?


4-1107338164
Tango
2005-02-02 12:56
2005.03.20
управление tabcontrol в чужом приложении


6-1106387043
Beglec
2005-01-22 12:44
2005.03.20
Можно ли при помощи TNetMon проссумировать байты отдельно по порт


14-1109657276
Карелин Артем
2005-03-01 09:07
2005.03.20
Условия работы в IT-конторах.