Глобальный класс TApplication
Материал из DRKB
Глобальный класс TApplication[править | править код]
Предлагаю вам ознакомиться с приведенной таблицей событий этого объекта:
События | Возникает |
---|---|
OnActionExecute: TActionEvent | Происходит при вызове метода Execute перед обработкой списка событий. |
OnActionUpdate: TNotifyEvent | Происходит при вызове метода Update; |
OnActivate: TNotifyEvent | При переходе приложения в активное состояние. |
OnDeactivate:TNotifyEvent | При переключении на другое приложение Windows |
OnException: TExceptionEvent | При возникновении исключительной ситуации |
OnHelp: THelpEvent | При запросе приложением справочной системы. |
OnHint: TNotifyEvent | При перемещении мыши над компонентом, у которого есть строка подсказки (Hint) |
OnIdle: TNotifyEvent | При отсутствии работы у приложения |
OnMessage: TMessageEvent | При получении сообщения Windows |
OnMinimize: TNotifyEvent | При минимизации приложения |
OnRestore: TNotifyEvent | При восстановлении приложения в нормальный размер |
OnShowHint: TShowHintEvent | При выводе строки подсказки (Hint) |
Для примера хочу предложить вам пример программы, которая при простое увеличивает счетчик на единицу, а при нажатии клавиши перестает это делать. Поставьте на форму одну кнопку и метку. Свойство Caption метки должно быть равно '0';
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure Count(Sender: TObject; var Done: Boolean);
procedure Stop(var Msg: TMsg; var Handled: Boolean);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Count;
begin
Label1.Caption := IntToStr(StrToInt(Label1.Caption) + 1); // увеличиваем счетчик
Done := False;
end;
procedure TForm1.Stop(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.Message = WM_KEYDOWN then
begin // нажата любая клавиша
Application.OnMessage := nil; // сообщение не обрабатывать
Application.OnIdle := nil; // Отменить фоновую работу
Handled := True; // сообщение обработано
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.OnIdle := Count; // процедура обработки простоя
Application.OnMessage := Stop; // процедура обработки сообщений
end;
end.
Еще у объекта TApplication есть ряд полезных свойств. Их названия и смысл приведены в таблице.
Свойство | Описание |
---|---|
HelpFile: String | Имя файла контекстной помощи, которое используется приложением |
Hint: String | Строка подсказки |
HintHidePause: Integer | Время, в течении которого подсказка будет отображаться. По умолчанию 2500 мсек. |
HintPause: Integer | Время, через которое подсказка появится при перемещении курсора над объектом. По умолчанию 500 мсек. |
HintShortPause: Integer | Используется для уменьшения мерцания курсора при перемещении мыши над объектом. По умолчанию 50 мсек. |
ShowHint: Boolean | Разрешает выводить подсказку для всего приложения (по умолчанию). Установив в False, вы запретите вывод подсказок для всего приложения |
Author: Михаил Христосенко
Source: Development и Дельфи (http://delphid.dax.ru/)
ID: 00413