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

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

Отлов сообщений форме [Delphi, Windows]


SPeller ©   (2002-06-29 11:42:00) 

Всем доброго времени суток! Не подскажете ли в чём проблема. Описываю обработчик сообщения для формы, а компилер ругается что "Undeclared indentified "private""

TfrmMain = class(TForm)
{$ENDIF KOL_MCK}
KOLProject1: TKOLProject;
kolfrmMain: TKOLForm;
txtClass: TKOLEditBox;
txtText: TKOLEditBox;
procedure kolfrmMainShow(Sender: PObj);
procedure kolfrmMainClose(Sender: PObj; var Accept: Boolean);
procedure WMUser(Var Message: TMessage); Message WM_USER;
private // Сюда ставит курсор и ругается.
public
{ Public declarations }
end;


Vladimir Kladov   (2002-06-29 18:54:00) [1]

Для обработки сообщений в KOL есть и другие механизмы:
- OnMessage формы или апплета,
- AttachProc,
- WndProc (если не дай Бог, имеется наследование от KOL.TControl).


Gandalf   (2002-06-29 17:15:00) [2]

>Нашёл. Там видимо для этих целей существует событие формы >OnMessage.
1. Ты прав.

>Только вот сам обработчик - функция и должет возвращать или >true или false
2. Он указывает обрабатываешь ты его или нет.

>плюс там ещё есть параметр Rslt (от result, но такое имя уже >предусмотрено для результата функции).
3. Возвращат значение функции - обычно 0 (нуль).

> Так вот, вопрос к знающим: как вообще правильно использовать >этот обработчик??
http://delphisoftware.narod.ru/VirtDiceSrc.zip
(там WM_SIZING и WM_GETMINMAXINFO обрабатываются)


SPeller   (2002-06-29 16:30:00) [3]

Ну ладно, result определяет, обрабатывать дальше или нет, а Rslt чего делает ??


BorisMor   (2002-06-29 14:21:00) [4]

Пример обработки минимизации окна для KOL (без MCK)

///////////////////////////////////////////////////////////////
Function DoMainMessage ( DummyObject: PControl; var Msg: TMsg; var Rslt:Integer ): Boolean;
begin

RESULT := FALSE;
IF (Msg.message = WM_SYSCOMMAND) and (Msg.wParam =SC_MINIMIZE) Then
begin
Applet.Hide ;
Main.Hide ;
RESULT := TRUE;
end;
end;
///////////////////////////////////////////////////////////////

....

Main := NewForm(Applet,"FORMA").SetSize(600,400);
Main.OnMessage :=TOnMessage(Makemethod(nil,@DoMainMessage));


SPeller   (2002-06-29 12:58:00) [5]

Нашёл. Там видимо для этих целей существует событие формы OnMessage. Только вот сам обработчик - функция и должет возвращать или true или false плюс там ещё есть параметр Rslt (от result, но такое имя уже предусмотрено для результата функции). Так вот, вопрос к знающим: как вообще правильно использовать этот обработчик?? Для чего параметр Rslt ?? В справке про него ничего нет. Как этот Rslt использовать совместно с результатом функции??


Anatoly Podgoretsky   (2002-06-29 12:14:00) [6]

Наверно из за этого {$ENDIF KOL_MCK}


Наверх

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