Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пункт системного меню. [D5, WinME]


Gari ©   (2002-04-24 09:26:00) 

Здраствуйте уважаемые господа. У меня вопрос такого содержания, если кто знает подскажите каким образом можно обработать команду системного меню. А именно я в системное меню программы всавил новый пункт, а вот как обработать событие нажатия не знаю. Подскажите пожалуйста.


Gari   (2002-04-24 10:46:00) [1]

Все понял. огромное спасибо.


gek   (2002-04-24 10:29:00) [2]

Описываем, что хотим обрабатывать именно
WM_SYSCOMMAND системные команды


Gari   (2002-04-24 10:22:00) [3]

Все получилось , огромное спасибо. Но у меня еще вопрос за чем мы добавляем в описание процедуры следующую строку message WM_SYSCOMMAND; Для того чтобы указать тип передоваемой константы. Так ли это за ранее огромное при огромное спасибо.


Ally   (2002-04-24 10:10:00) [4]

> Gari

Одно из двух:

1) либо Вы забыли дописать message WM_SYSCOMMANDв объявлении процедуры:


procedure WMSysCommand(var Msg: TMessage); message WM_SYSCOMMAND;


2) либо в ее обработчике - inheritedперед

if (Msg.wParam=idSysMyMemu) then ShowMessage("kuku");


то есть:

begin
inherited;
if (Msg.wParam = idSysMyMemu) then ShowMessage("kuku");
end;


3) либо и то и другое...

Удачи.


gek   (2002-04-24 10:06:00) [5]

type
Tmyform = class(TForm)
..........
...........
...........
private
{ Private declarations }
public
procedure WMSysCommand (var Msg: TMessage);
message wm_SysCommand;
end;

И добавить в procedure WMSysCommand
inherited;// в самом конце


Gari   (2002-04-24 09:50:00) [6]

Что то, иак как ты написал не получается. Хотя по идее должно.


gek   (2002-04-24 09:34:00) [7]

Ну наверное так

const
idSysMyMemu=200;

AppendMenu(GetSysteMenu(Handle,false), MF_STRING,idSysMyMemu,"КуКУ");

procedure myform.WMSyscommand(var msg:tmessage);
begin
if msg.wparam=idSysMyMemu then
showmessage("kuku");
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо