32 Урока Borland Delphi

         

В недрах VCL Delphi сообщения


  • В недрах VCL Delphi сообщения Windows обрабатываются и преобразуются в более простую для программиста форму;
  • Обработка событий в Delphi сводится к написанию для каждого объекта своих обработчиков;
  • События в программе на Delphi вызываются не только сообщениями Windows, но и внутренними процессами.
        1. Обработка сообщений Windows в Delphi
        Конечно, нельзя придумать такую библиотеку объектов, которые бы полностью соответствовали потребностям программистов. Всегда возникнет необходимость дополнения или изменения свойств и поведения объектов. В этом случае, так же, как и при создании своих собственных компонент в Delphi, часто требуется обрабатывать сообщения Windows. Поскольку Object Pascal является развитием и продолжением Borland Pascal 7.0, то это выполняется сходным с BP способом. Общий синтаксис для декларации обработчика сообщений Windows:
        procedure Handler_Name(var Msg : MessageType);
        message WM_XXXXX;
        Handler_Name обозначает имя метода; Msg - имя передаваемого параметра; MessageType - какой либо тип записи, подходящий для данного сообщения; директива message указывает, что данный метод является обработчиком сообщения; WM_XXXXX - константа или выражение, которое определяет номер обрабатываемого сообщения Windows.
        Рассмотрим обработку сообщений на примере. Например, при нажатии правой кнопки мыши на форме в программе появляется всплывающее меню (pop-up menu, если оно было привязано к этой форме). Программист может захотеть привязать к правой кнопке какое-нибудь другое событие. Это можно сделать так:
        type
        TForm1 = class(TForm)
        PopupMenu1: TPopupMenu;
        MenuItem1: TMenuItem;
        MenuItem2: TMenuItem;
        MenuItem3: TMenuItem;
        private
        { Private declarations }
        procedure WMRButtonDown(var Msg : TWMMouse); message
        WM_RBUTTONDOWN;
        public
        { Public declarations }
        end;
         
         
        Подчеркнут код, добавленный в декларацию объекта TForm1 вручную. Далее, в секции implementation нужно написать обработчик:
         
         
        procedure TForm1.WMRButtonDown(var Msg : TWMMouse);
        begin

        Содержание  Назад  Вперед







        Forekc.ru
        Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий