Практична робота №1
ТЕМА: Використання модальних та немодальних форм
МЕТА: Навчитися використовувати в своїх програмах стандартні вікна.
Теоретичні відомості
Властивості форми.
Property Active: Boolean; Містить True, якщо вікно активне (має фокус введення).
Property BorderIcons: TborderIcons; TborderIcons = set of TborderIcon; TborderIcon = (biSystemMenu, biMinimize, biMaximize, biHelp); Визначає присутність кнопок в заголовку вікна. BiSystemMenu – присутня кнопка виклику системного меню; biMinimize – присутня кнопка мінімізації; biMaximize – присутня кнопка максимізації. BiHelp – присутня кнопка виклику довідкової служби.
Property BorderStyle: TformBorderStyle; TformBorderStyle = (bsNone, bsSingle, bsSizeable, bsDialog, bsToolWindow, bsSizeToolWin); Визначає стиль рамки вікна: bsNone – вікно не має рамки і заголовка і не може переміщуватися і змінювати свої розміри; bsSingle – рамка товщиною в 1 піксель; таке вікно не може змінювати свої розміри; bsSisable – звичайна рамка; bsDialog – рамка діалогового вікна; вікно не може змінювати свої розміри; bsToolWindow – подібний bsSingle, але з зменшеним по висоті заголовком;
Property Canvas: Tcanvas; Канва для промальовки фона вікна. Цю властивість можуть використовувати деякі дочірні елементи.
Property СlientHeight: Integer; Висота клієнтської частини вікна.
Property ClientRect: Trect; Прямокутник клієнтської частини вікна.
Property ClientWidth: Integer; Ширина клієнтської частини вікна.
Property HelpFile: String; Кожна форма може мати індивідуальний Help файл, ім’я якого містить дана властивість. Якщо ім’я не вказано, використовується Help файл додатку.
Property Icon: Ticon; Містить піктограму вікна. Для головної форми ця властивість визначає також піктограму програми.
Property KeyPreview: Boolean; Якщо має значення True, форма отримує “события” від клавіатури, перед тим як їх отримає елемент з фокусом вводу.
Property MDIChildCount: Integer; В рамочному MDI вікні вказує кількість зв’язаних з ним дочірніх вікон.
Property MDIChildren [I: Integer]: Tform; В рамочному MDI вікні відкриває доступ до І-го дочірнього вікна.
Property Menu: TmainMenu;a Містить головне меню вікна.
TmodalResult = Low(Integer)..High(Integer);
Property ModalResult: TmodalResult; Для модального вікна містить результат діалогу.
Property PixelsPerInch: Integer; Визначає дозволену можливість в пікселях на один лінійний дюйм для етапу конструювання форми.
Tposition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter);
Property Position: Tposition; Визначає положення і розміри вікна в момент його появи на екрані; poDesigned – таке ж, як на етапі конструювання вікна; poDefault – положення і розміри визначаються Windows; poDefaultPosOnly – положення, як на етапі конструювання, а розміри визначає Windows; poDefaultSizeOnly – розміри, як на етапі конструювання, а положення визначає Windows. PoScreenCenter – в центрі екрану з розмірами, як на етапі конструювання.
TprintScale = (poNone, poProportional, poPrintToFit);
Property PrintScale:TprintScale; Визначає масштабування вікна при його друкуванні на принтері. PoNone – немає масштабування; Кожний піксель вікна виводиться одною точкою на бумазі; poProportional – форма масштабування така, щоб її образ на папері був максимально подібний до екранної; poPrintToFit – форма друкується з такими ж пропорціями, як на екрані, але з розмірами що заповнюють лист паперу.
Property Scaled: Boolean; Дозволяє/забороняє масштабувати форму, якщо значення її властивості PixelPerInch відмінне від поточного дозволу (разрешения) екрану.
TTileMode = (tbHorizontal, tbVertical);
Property TileMode:TtileMode;
Визначає стиль розташування дочірніх вікон MDI додатку при їх упорядкуванні мозаїкою.
Property WindowMenu: TmenuItem; Визначає пункт головного меню рамочного MDI вікна, до якого добавляються опції дочірнього вікна.
TwindowState = (wsNormal, wsMinimized, wsMaximized);
Property WindowState:TwindowState; Визначає стан вікна під час появи його на екрані. WsNormal – звичайне вікно; wsMinimized – мінімізовано до піктограми; wsMaximized – Розвернуто на весь екран.
На замітку, якщо в множені властивостей BorderIcon забрати кнопки biMaximize i biMinimize, а в властивість WindowState помістити значення wsMaximized, форма займе увесь простір екрану, навіть нижню панель задач.
ІІ.Методи форми.
Procedure ArrangeIcons; Впорядковує піктограми закритих дочірніх вікон MDI додатку.
Procedure Cascade; Розташовує дочірні вікна каскадом.
Procedure Close; Закриває вікно. Для головного вікна завершує роботу програми.
Function CloseQuery: Boolean; Повертає True, якщо можна закрити вікно.
Procedure DefocusControl; Removing: Boolean); Відбирає фокус вводу у дочірнього елемента Control. Якщо при цьому Removing=true, фокус введення отримує форма.
Procedure FocusControl (Control: TwinControl); Передає фокус вводу дочірньому елементу Control.
Function GetFormImage: Tbitmap; Містить поточне зображення вікно форми.
Procedure Next; Робить активним наступне MDI вікно.
Procedure Previous; Робить активним попереднє MDI вікно.
Procedure Tile; Розташовує дочірні MDI вікна мозаїкою.
Procedure Print; Друкує вікно на принтер.
Procedure Release; Чекає закінчення обробітку всіх подій форми і її дочірніх елементів, після чого знищує вікно і звільнює всю зв’язану з ним пам’ять.
Procedure SendCancelMode (Sender: Tcontrol); Відновлює початковий стан вікна: звільнює мишку, зупиняє прокрутку і закриває меню.
Procedure SetFocus; Передає фокус вводу формі. Форма при цьому повинна бути активною і видимою.
Procedure Show; Показує форму в немодальному режимі.
Function ShowModal:Integer; Показує форму в модальному режимі і повертає результат діалогу.
ІІІ.Події форми.
Property OnActivate: TnotifyEvent; Виникає в момент активізації вікна (при отриманні нею фокусу введення).
TcloseAction = (caNone, caHide, caFree, caMinimize);
TcloseEvent = procedure (Sender: TObject; var Action: TcloseAction) of object;
Property OnClose: TcloseEvent;
Виникає перед закриттям вікна. Параметр Action уточнює необхідні дії: caNone – не закривати вікно, caHide – сховати вікно; caFree – знищити вікно; сaMinimize – мінімізувати вікно.
TcloseQueryEvent = procedure (Sender: TObject; var CanClose: Boolean) of object;
Property OnCloseQuery: TcloseQueryEvent; Виникає перед закриттям вікна. В параметрі CalClose оброблювальник повідомляє про можливість закриття вікна.
Property OnCreate: TnotifyEvent; Виникає при створені вікна, але до його появлення на екрані.
Property OnDeactivate:TnotifyEvent; Виникає при передачі активності іншому вікну тієї ж програми.
Property OnDestroy: TnotifyEvent; Виникає при знищені вікна.
ThelpEvent = function (Command:Word; Data:Longint; var CallHelp: Boolean): Boolean of object;
Property OnHelp:ThelpEvent; Виникає при звертанні до довідкової служби. В параметрі CallHelp оброблювач повідомляє про можливість отримання допомоги.
Property OnHide: TnotifyEvent; Виникає перед зникненням вікна.
Property OnPaint: TnotifyEvent; Виникає при необхідності промальовки вікна.
Property OnResize: TnotifyEvent; Виникає при зміні розмірів вікна.
Property OnShow: TnotifyEvent; Виникає при появі вікна на екрані.