Михаил Христосенко
Р’
этой работе я постараюсь рассмотреть существующие в Дельфи глобальные классы.
Расскажу о том, как и где их можно применять и что с ними можно делать. Начнем
мы с глобального класса (объекта) 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, вы запретите вывод
подсказок для всего приложения
|
|
Следующий
глобальный объект, который РјС‹ СЃ вами рассмотрим - Screen. Ртот объект
инкапсулирует свойства дисплея. У него очень много свойств, но мы посмотрим
только некоторые из них. Вам, наверно, часто приходилось встречать такую вещь:
когда программа выполняет какую-нибудь долгую операцию, курсор над формой
изменяет свой вид, а потом, когда операция выполнена, становится нормальным.
Чтобы реализовать эту штуку, нам придется воспользоваться свойтсвом Cursor, объекта Screen. Рто свойство
отвечает за вид курсора над вашим приложением. Тогда общий вид какой-нибудь
процедуры может быть таким:
try
В Screen.Cursor:=crHourGlass;
 {какие-нибудь
длинные операции или вычисления}
finally
В Screen.Cursor:=crDefault;
end;
Также
с помощью объекта  Screen можно узнать
параметры монитора. Свойства Width и Height указывают на ширину и высоту
монитора соответственно. А свойство PixelPerInch
- число точек на дюйм.
Как
получить список всех шрифтов, о потом занести их в Combobox?? Такой вопрос,
наверно, не раз задавали себе начинающие программисты, делая текстовые
редакторы. Все очень просто, достаточно воспользоваться свойством Fonts. Записав эту строку в обработчике
OnCreate для вашей формы, вы получите Combo со списком шрифтов, установленных у
вас в системе:
Combobox1.Items:=Screen.Fonts;
Последний
глобальный объект, который мы рассмотрим в этой статье будет объект Clipboard,
необходимый для работы с буфером обмена. Для того, чтобы начать работу с этим
объектом, необходимо в разделе Uses указать модуль Clipbrd. У этого объекта
всего три свойства:
Свойство
|
Описание
|
AsText: string
|
Рспользуется для обмена
информацией в текстовом виде.
|
FormatCount: integer
|
Содержит общее число форматов,
которые находятся в буфере обмена в данный момент.
|
Formats [Index: Integer]:
Word
|
Содержит значения
идентификаторов формата, Index[0..FormatCount-1].
|
|
Например,
чтобы при загрузке программы, в Memo помещался текст из буфера обмена, в
обработчике формы OnCreate, нужно написать следующее:
Memo1.Text:=Clipboard.AsText;
Для
работы с буфером обмена существует ряд методов. Для очистки буфера используется
метод Clear, для того, чтобы поместить в буфер изображение (*.BMP или *.WMF)
нужно воспользоваться методом Assign (Source: TPersistent).
РќСѓ
вот и все, я кратко рассказал вам, о некоторых глобальных объектах в Дельфи.
Список литературы
Для
подготовки данной работы были использованы материалы с сайта http://bestcode.org/