Глобальные объекты в Дельфи. Их свойства и методы
Михаил Христосенко
В этой работе я постараюсь рассмотреть существующие в Дельфи глобальные классы. Расскажу о том, как и где их можно применять и что с ними можно делать. Начнем мы с глобального класса (объекта) TApplication. Предлагаю вам ознакомиться с приведенной таблицей событий этого объекта:
|
Для
примера хочу предложить вам пример программы, которая при простое увеличивает
счетчик на единицу, а при нажатии клавиши перестает это делать. Поставьте на
форму одну кнопку и метку. Свойство 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 есть ряд полезных свойств. Их названия и смысл приведены в таблице.
|
Следующий
глобальный объект, который мы с вами рассмотрим - 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. У этого объекта всего три свойства:
|
Например, чтобы при загрузке программы, в Memo помещался текст из буфера обмена, в обработчике формы OnCreate, нужно написать следующее:
Memo1.Text:=Clipboard.AsText;
Для работы с буфером обмена существует ряд методов. Для очистки буфера используется метод Clear, для того, чтобы поместить в буфер изображение (*.BMP или *.WMF) нужно воспользоваться методом Assign (Source: TPersistent).
Ну вот и все, я кратко рассказал вам, о некоторых глобальных объектах в Дельфи.
Список литературы
Для подготовки данной работы были использованы материалы с сайта http://bestcode.org/
Дата добавления: 10.03.2005