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

Вниз

Message методы   Найти похожие ветки 

 
Drowsy ©   (2015-01-30 06:57) [0]

Почему в справочниках указывается, что
"номера сообщений от 1 до WM_USER-1 зарезервированы системой, от WM_USER до $7FFF – для пользовательских сообщений"
а во множестве примеров спокойно используют сообщения из диапазона системных, например:

const
MSG_STRING = 1;
MSG_INT = 2;

можно обмениваться строковыми и целочисленными данными между классами через message методы:

type
TClass1 = class
private
 FSomeString: WideString;
 procedure OnStringGet(var Msg: TDataMessage); message MSG_STRING;
 procedure OnIntegerReceived(var Msg: TDataMessage); message MSG_INT;
end;

procedure TClass1.OnIntegerReceived(var Msg: TDataMessage);
begin
Msg.Result := Msg.Data * 2;
end;

procedure TClass1.OnStringGet (var Msg: TDataMessage);
begin
FSomeString := "test string example";
Msg.Result := Integer(PWideChar(FSomeString));
end;


 
MBo ©   (2015-01-30 07:51) [1]

Данный пример показывает, как в своем классе использовать механизм сообщений. С Windows сообщениями это не пересекается


 
sniknik ©   (2015-01-30 07:59) [2]

не все системные события делают что-то важное/полезное у тебя в программе-форме. нет проблем перекрыть их... но вот попробуй так перекрыть событие перерисовки например и поймешь почему лучше следовать рекомендациям справочников.


 
icWasya ©   (2015-01-30 09:15) [3]

А вот если такие методы приделаешь к форме, то получится очень странно, поскольку
 WM_CREATE           = $0001;
 WM_DESTROY          = $0002;
, и форма даже не появится на экране.


 
1234567   (2015-01-31 15:26) [4]

Тут речь идет об оконньіх сообщениях, то есть, єто имеет отношение к классам, порожденньім от TWinControl, так как они используют системньіе оконньіе сообщения.
А в примере просто класс от TObject, которьій не имеет стандартного обработчика оконньіх сообщений, то есть, он не окно вообще; поєтому ему можно посьілать что угодно, и все єти сообщения ни с чем пересекаться не будут.


 
Rouse_ ©   (2015-01-31 16:35) [5]


> А в примере просто класс от TObject, которьій не имеет стандартного
> обработчика оконньіх сообщений, то есть, он не окно вообще;
>  поєтому ему можно посьілать что угодно, и все єти сообщения
> ни с чем пересекаться не будут.

Стесняюсь спросить, раз уж речь зашла об "оконных сообщениях" (слово-то какое) на какой хэндл твоему классу от TObject они приходить будут? ;)


 
Rouse_ ©   (2015-01-31 16:47) [6]

ЗЫ: забыл ответ на вопрос топикстартера.

> а во множестве примеров спокойно используют сообщения из
> диапазона системных, например:

Они просто не придерживаются концепции, и именно в приведенных примерах этот код будет работать, но: http://www.gunsmoker.ru/2010/05/90.html



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

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

Наверх




Память: 0.48 MB
Время: 0.023 c
2-1426493835
ИП
2015-03-16 11:17
2017.01.15
Дельфи-программа как сервер для браузера


15-1450710851
kapwell
2015-12-21 18:14
2017.01.15
работа на делфи


2-1423545320
i2e
2015-02-10 08:15
2017.01.15
VK_ESCAPE и VK_E


15-1445860992
DayGaykin
2015-10-26 15:03
2017.01.15
PHP и Java для Web


8-1238746691
igor666
2009-04-03 12:18
2017.01.15
Карта города.