Читать «Учебник по Delphi 4.0» онлайн - страница 42

Unknown

procedure TFormI.FormCreate(Sender: TObject);

begin

Application.OnActivate:= OnActivateHandler;

end;

OnActivate и OnDeactivate

Эти события оповещают программу об изменении свойства Active.

OnException

Событие вызывается при необработанной исключительной ситуации.

OnHint

Событие генерируется при перемещении указателя мыши над объектом — потомком TControl, если его свойство Hint равно значению, которое отличается от пустой строки.

Onldle

Событие генерируется, когда приложение ожидает ввода и не занято обработкой события. Обычно оно используется для выполнения фоновых задач наподобие загрузки базы данных или обработки изображения.

Обработчик получает логический параметр Done, по умолчанию равный True. Если вы оставляете его равным True, обработчик не запустится до тех пор, пока не будет получено и обработано очередное сообщение. Если вы установили Done равным False, обработчик будет запускаться во время ожидания сообщения.

Поскольку во время работы обработчика приложение не отрабатывает сообщения, делайте его более коротким либо не забывайте запускать из него процедуру ProcessMessages.

Ниже приведен код использования обработчика для вывода текущего времени в объекте TPanel.

procedure TFormI.OnIdleHandler(Sender: TObject; var Done: Boolean);

begin

pnlTime.Caption:= TimeToStr(Now);

end;

Компонент TScreen

Класс TScreen инкапсулирует состояние экрана или выводимой области. Delphi во время работы автоматически создаст экземпляр класса Screen. Для его использования в раздел uses нужно включить модуль Forms.

Свойства TScreen

ActiveControl

Это свойство возвращает объект TWinControl, имеющий фокус ввода. Обычно оно используется для реализации команд Copy, Cut и Paste для текстовых управляющих элементов. Следующий код, помещенный в обработчик TMenuItem, выполняет функцию Copy.

procedure TFormI.mnuEditCopyClick(Sender: TObject);

begin

Screen.ActiveControl.Perform(WMCOPY,0,0);

end;

Все, что происходит в мире Windows, базируется на сообщениях. Для выполнения какой-либо функции управляющие элементы часто отсылают сообщения самим себе. Так и в этом примере управление происходит путем передачи сообщения WMCOPY.

ActiveForm

Это свойство возвращает объект TForm, имеющий фокус ввода. Если приложение неактивно, свойство указывает, какая именно форма будет иметь фокус ввода при активизации приложения. В качестве примера используем свойство для создания мигающего заголовка формы, чтобы привлечь внимание пользователя. Функция Windows API, предназначенная для этой цели, должна получить дескриптор окна:

FlashWindow(Screen.Active Form.Handle,False);

Cursor

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

{Придать курсору форму песочных часов.}

Screen.Cursor:= crHourglass;

try

{Попытаемся ничего не делать какое-то время.}

for iCount:=1 to 1000000000 do;