Лабораторна робота № 2
Тема: Створення та використання меню програми.
Мета: Навчитись створювати меню головної форми проекту, використовуючи засоби візуального програмування.
Теоретичні відомості
Головна компонента, яку використовують для відображення малюнків, - TІmage. Вона призначена для показування на формі зображення бітової карти або іконки. Компонента вміє керувати розташуванням та розмірами зображення у своїх межах.
Компоненту TІmage можна розмістити як безпосередньо на формі, так і в деякому контейнері, наприклад, ТРаnеl. В останньому випадку компоненту TImage можна пересувати по формі разом з контейнером, а також вирівнювати до його меж, що надає додаткові зручності під час проектування форми. Зауважимо, що компоненти ТРаnеl власне для цього і призначені — групувати, пересувати і взагалі керувати іншими компонентами одночасно, будучи батьківською компонентою щодо всіх інших розташованих на ній компонент.
Компонента TImage вміє працювати з файлами типів *.Вmp, *.Iсо, *.Wmf.
Усі видимі елементи форми мають властивості property Hint: String ; property ShowHint: Boolean ;
Вони визначають появу та зміст етикетки — невеликого віконця біля елемента, на якому розмістився курсор. Етикетки можуть нагадувати користувачеві програми про призначення елементів форми і забезпечити зручнішу роботу з програмою. Крім етикеток, можна одночасно виводити на форму довше повідомлення, яке також буде з’являтися автоматично.
Щоб деяка компонента могла показувати етикетку, треба записати відповідний текст у властивість Hint і присвоїти властивості ShowHint значення True. Це переважно виконують за допомогою інспектора об’єктів, однак можна робити й програмно під час виконання. Переважно сама етикетка містить коротенький текст, який можна доповнити розгорнутим повідомленням і наводити в будь-якій компоненті, що здатна відображати текст.
Наприклад, часто це роблять на панелі статусу, що займає нижню частину форми. Щоб показати розгорнуте повідомлення, потрібно, по-перше, його текст записати так само у властивість Hint відразу після короткого повідомлення і відділити обидві частини символом ”|”. Схема запису:
MyControl.Hint:='Короткий текст|Текст розгорнутого, повідомлення ';
По-друге, на самому початку роботи програми (переважно в процедурі опрацювання події OnCreate головної форми) потрібно визначити метод, який буде опрацьовувати подію OnHint Ця подія виникає в момент появи етикетки і призначена для відображення розгорнутого повідомлення, текст якого метод опрацювання події може одержати з властивості Hint глобального об’єкта Application. Це можна зробити за такою схемою:
type
TForm1 = class(TForm)
pnStatus: ТРаnеІ; / /панель відображення розгорнутого // повідомлення
public
//оголошуємо метод опрацювання події OnHint: procedure ShowLongHint (Sender: TObject);
end;
procedure TForm1.ShowLongHint (Sender: TObject);
//цей метод передає на панель pnStatus розгорнуту частину //повідомлення.
begin
pnStatus.Caption:= Application.Hint; end;
procedure TForm1.FormCreate (Sender: TObject);
//метод визначає властивість OnHint - метод опрацювання //події
begin
Application.OnHint: =ShowLongHint; end;
Загальні властивості всієї системи етикеток визначені в глобальному об’єкті-програмі Application:
-
property HintColor: Tcolor;
Визначає колір тла етикетки
property HintHidePause: Integer;
Визначає час показування етикетки в мілісекундах. За замовчуванням дорівнює 2500 (2,5 с)
property HintPause: Integer;
Визначає паузу в мілісекундах після зупинки вказівника мишки і перед появою етикетки
property HintShortPause: Integer;
Визначає паузу перед появою етикетки у разі переходу з однієї компоненти з заданою властивістю Hint на іншу таку ж. За замовчуванням дорівнює 50
Зазначимо, що об’єкта Application на палітрі компонент нема, отже, за допомогою інспектора об’єктів такі властивості визначити неможливо. Це треба робити лише програмно, наприклад, так само в процедурі опрацювання події OnCreate головної форми.
Крім того, об’єкт Application має свою власну властивість ShowHint. яка є домінуючою для всієї системи підказок: якщо вона дорівнює False, то етикетки не з’являються.
Меню програми призначене для вибирання та виконання команд за допомогою структурованого списку, зображеного у верхній частині форми. Меню використовують у багатьох задачах. Воно має стандартний, прийнятий у Windows вигляд. Меню можна вважати деяким аналогом кнопок, використовуваних у попередніх проектах для виконання потрібних команд.
Меню визначене для форми. Щоб програма мала меню, на форму треба помістити компоненту MainMenu, яка визначатиме головне меню. Після цього розпочинають формування переліку (списку) пунктів меню за допомогою спеціального конструктора меню.