Форум: "Начинающим";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c