Глобальні об'єкти в Дельфи. Їх властивості і методи. h2>
Михайло Хрістосенко p>
В
цій роботі я спробую розглянути існуючі в Дельфи глобальні класи.
Розкажу про те, як і де їх можна застосовувати і що з ними можна робити. Почнемо
ми з глобального класу (об'єкта) TApplication. Пропоную вам ознайомитися з
наведеною таблицею подій цього об'єкту: p>
Події p>
Виникає p>
OnActionExecute: TActionEvent
p>
Відбувається при виклику методу
Execute перед обробкою списку подій. p>
OnActionUpdate: TNotifyEvent p>
Відбувається при виклику методу
Update; p>
OnActivate: TNotifyEvent p>
При переході програми в
активний стан. p>
OnDeactivate: TNotifyEvent p>
При перемиканні на інше
додаток Windows p>
OnException: TExceptionEvent p>
При виникненні
виняткову ситуацію p>
OnHelp: THelpEvent p>
При запиті додатком
довідкової системи. p>
OnHint: TNotifyEvent p>
При переміщенні миші над
компонентом, у якого є рядок підказки (Hint) p>
OnIdle: TNotifyEvent p>
При відсутності роботи у
програми p>
OnMessage: TMessageEvent p>
При отриманні повідомлення
Windows p>
OnMinimize: TNotifyEvent p>
При мінімізації програми p>
OnRestore: TNotifyEvent p>
При відновленні програми
в стандартний розмір p>
OnShowHint: TShowHintEvent p>
При виведенні рядки підказки
(Hint) p>
Для
приклад хочу запропонувати вам приклад програми, яка при простої збільшує
лічильник на одиницю, а при натисканні клавіші перестає це робити. Поставте на
форму одну кнопку і позначку. Властивість Caption
мітки має дорівнювати '0 '; p>
unit Unit1; p>
interface p>
uses p>
Windows, Messages, SysUtils, Classes
Graphics, Controls, Forms, Dialogs, p>
StdCtrls; p>
type p>
TForm1
= Class (TForm) p>
Button1: TButton; p>
Label1: TLabel; p>
procedure Button1Click (Sender: TObject); p>
private p>
(Private
declarations) p>
procedure count (Sender: TObject; var
Done: boolean); p>
procedure stop (var Msg: TMsg; var
Handled: boolean); p>
public p>
(Public
declarations) p>
end; p>
var p>
Form1:
TForm1; p>
implementation p>
($ R *. DFM) p>
procedure
Tform1.Count; p>
begin p>
label1.Caption: = IntToStr (StrToInt (label1.caption) +1);// збільшуємо лічильник p>
Done: = false; p>
end; p>
procedure
TForm1.stop (var Msg: Tmsg; var Handled: boolean); p>
begin p>
if
Msg.message = WM_KEYDOWN then begin// натиснута будь-яка клавіша p>
Application.OnMessage: = nil;// повідомлення не обрабаьивать p>
Application.OnIdle: = nil;// Скасувати фонову роботу p>
Handled: = true;// повідомлення оброблено p>
end; p>
end; p>
procedure
TForm1.Button1Click (Sender: TObject); p>
begin p>
Application.OnIdle: = count;// процедура обробки простою p>
Application.OnMessage: = Stop;// процедура обробки повідомлень p>
end; p>
end. p>
Ще
в об'єкта TApplication є ряд корисних властивостей. Їх назви і зміст наведені
в таблиці. p>
Властивість p>
Опис p>
HelpFile: String p>
Файл контекстної допомоги,
яке використовується додатком p>
Hint: String p>
Рядок підказки p>
HintHidePause: Integer p>
Час, протягом якого
підказка буде відображатися. За умовчанням 2500 мсек. p>
HintPause: Integer p>
Час, через яке
підказка з'явиться при переміщенні курсору над об'єктом. За замовчуванням 500
мсек. p>
HintShortPause: Integer p>
Використовується для зменшення
мерехтіння курсору при переміщенні миші над об'єктом. За замовчуванням 50 мсек. p>
ShowHint: Boolean p>
Дозволяє виводити підказку
для всього додатки (за замовчуванням). Встановивши в False, ви забороните висновок
підказок для всього програми p>
Наступний
глобальний об'єкт, який ми з вами розглянемо - Screen. Цей об'єкт
інкапсулює властивості дисплея. У нього дуже багато властивостей, але ми подивимося
тільки деякі з них. Вам, мабуть, часто доводилося зустрічати таку річ:
коли програма виконує якусь довгу операцію, курсор над формою
змінює свій вигляд, а потім, коли операція виконана, стає нормальним.
Щоб реалізувати цю штуку, нам доведеться скористатися свойтсвом Cursor, об'єкта Screen. Ця властивість
відповідає за вигляд курсора над вашим додатком. Тоді загальний вигляд якої-небудь
процедури може бути таким: p>
try p>
Screen.Cursor: = crHourGlass; p>
(які-небудь
довгі операції або обчислення) p>
finally p>
Screen.Cursor: = crDefault; p>
end; p>
Також
за допомогою об'єкта Screen можна дізнатися
параметри монітора. Властивості Width і Height вказують на ширину і висоту
монітора відповідно. А властивість PixelPerInch
- Кількість точок на дюйм. P>
Як
отримати список усіх шрифтів, про потім занести їх у Combobox?? Таке питання,
напевно, не раз ставили собі починаючі програмісти, роблячи текстові
редактори. Все дуже просто, достатньо скористатися властивістю Fonts. Записав цей рядок в обробнику
OnCreate для вашої форми, ви отримаєте Combo зі списком шрифтів, встановлених у
вас в системі: p>
Combobox1.Items: = Screen.Fonts; p>
Останній
глобальний об'єкт, який ми розглянемо в цій статті буде об'єкт Clipboard,
необхідний для роботи з буфером обміну. Для того, щоб почати роботу з цим
об'єктом, необхідно в розділі Uses вказати модуль Clipbrd. У цього об'єкта
всього три властивості: p>
Властивість p>
Опис p>
AsText: string p>
Використовується для обміну
інформацією в текстовому вигляді. p>
FormatCount: integer p>
Містить загальне число форматів,
які знаходяться в буфері обміну в даний момент. p>
Formats [Index: Integer]:
Word p>
Містить значення
ідентифікаторів формату, Index [0 .. FormatCount-1]. p>
Наприклад,
щоб під час завантаження програми, в Memo містився текст з буфера обміну, в
обробнику форми OnCreate, потрібно написати наступне: p>
Memo1.Text: = Clipboard.AsText; p>
Для
роботи з буфером обміну існує ряд методів. Для очищення буфера використовується
метод Clear, для того, щоб помістити в буфер зображення (*. BMP або *. WMF)
потрібно скористатися методом Assign (Source: TPersistent). p>
Ну
от і все, я коротко вам розповів про деякі глобальних об'єктах в Дельфи. p>
Список літератури h2>
Для
підготовки даної роботи були використані матеріали з сайту http://bestcode.org/
p>