Разработка прикладных программ для ОС WINDOWS с помощью интегрированных сред Delphi / C++Builder. Баканов В.М. - 17 стр.

UptoLike

Составители: 

- 17 -
Например, нижеприведенный вызов
SendMessage(Form2->Handle, WM_CLOSE, 0, 0);
передает окну формы Form2 закрывающее это окно сообщение
WM_CLOSE. Вызов
SendMessage(FindWindow("TForm1", "Приложение_Primer_2",
WM_CLOSE, 0, 0);
передает аналогичное сообщение окну класса TForm1.
Функция PostMessage возвращает управление вызвавшей ее программе,
не дожидаясь окончания обработки сообщения (этим она существенно отли-
чается от функции SendMessage, которая возвращает управление вызываю-
щей программе только после окончания обработки сообщения и на это время
блокирует пославшее сообщение приложение).
Вышеприведенные данные дают некоторые основы
знания о функциони-
ровании ОС WINDOWS, в то же время демонстрируя сложность предмета
(для заинтересованных в профессиональных знаниях рекомендуется работы
[1
÷ 2,4 ÷ 11]). Для работающих на MFCL / OWL C++ знание всех тонкостей
необходимо, начинающий Delphi-разработчик может и не иметь представле-
ния о тонкостях функционирования WINDOWS-программ (хотя серьезная
дальнейшая работа в WINDOWS и потребует дополнительных знаний).
Например, в Delphi доступно прямое связывание сообщений WINDOWS с
методами-обработчиками (message-handling methods). Прототип соответ-
ствующей процедуры-обработчика должен быть
объявлен с директивой mes-
sage, непосредственно за которой следует идентификатор обрабатываемого
сообщения
procedure WM_Reaction1 (var Message: TWMSize); message
WM_MOUSEMOVE;
Теперь при генерации сообщения WM_MOUSEMOVE (любое переме-
щение 'мыши') будет вызвана процедура WM_Reaction_1 (название метода, а
также имя и тип единственного описанного с квалификатором var формаль-
ного параметра в данном случае не имеют значения)
procedure TForm1.WM_Reaction_1(var Message: TWMSize);
begin
Label_1.Сарtion:='Получено очередное сообщение ' +
'о перемещении мыши...';
end;
Приведенный подход доступен для квалифицированных разработчиков, в
                                   - 17 -


   Например, нижеприведенный вызов

SendMessage(Form2->Handle, WM_CLOSE, 0, 0);

 передает окну формы Form2 закрывающее это окно сообщение
WM_CLOSE. Вызов

SendMessage(FindWindow("TForm1", "Приложение_Primer_2",
            WM_CLOSE, 0, 0);

    передает аналогичное сообщение окну класса TForm1.
    Функция PostMessage возвращает управление вызвавшей ее программе,
не дожидаясь окончания обработки сообщения (этим она существенно отли-
чается от функции SendMessage, которая возвращает управление вызываю-
щей программе только после окончания обработки сообщения и на это время
блокирует пославшее сообщение приложение).
    Вышеприведенные данные дают некоторые основы знания о функциони-
ровании ОС WINDOWS, в то же время демонстрируя сложность предмета
(для заинтересованных в профессиональных знаниях рекомендуется работы
[1 ÷ 2,4 ÷ 11]). Для работающих на MFCL / OWL C++ знание всех тонкостей
необходимо, начинающий Delphi-разработчик может и не иметь представле-
ния о тонкостях функционирования WINDOWS-программ (хотя серьезная
дальнейшая работа в WINDOWS и потребует дополнительных знаний).
    Например, в Delphi доступно прямое связывание сообщений WINDOWS с
методами-обработчиками (message-handling methods). Прототип соответ-
ствующей процедуры-обработчика должен быть объявлен с директивой mes-
sage, непосредственно за которой следует идентификатор обрабатываемого
сообщения

procedure WM_Reaction1 (var Message: TWMSize); message
                                               WM_MOUSEMOVE;

   Теперь при генерации сообщения WM_MOUSEMOVE (любое переме-
щение 'мыши') будет вызвана процедура WM_Reaction_1 (название метода, а
также имя и тип единственного описанного с квалификатором var формаль-
ного параметра в данном случае не имеют значения)

procedure TForm1.WM_Reaction_1(var Message: TWMSize);
begin
 Label_1.Сарtion:='Получено очередное сообщение ' +
                   'о перемещении мыши...';
end;

   Приведенный подход доступен для квалифицированных разработчиков, в