Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОПІ_Лекції_зошит4.docx
Скачиваний:
2
Добавлен:
20.08.2019
Размер:
244.78 Кб
Скачать

Призначення обробників подій

Незалежно від того, яким чином був створений компонент – у візуальному побудовнику або під час виконання програми, - він однаково інтегрується в загальну схему роботу, в тому числі підтримується можливість використання подій. Посилання на обробник події компонента є property-властивістю, що представляє деякий процедурний тип даних. Наприклад, можна організувати обробку події OnKeyPress компонента Edit1, що створюється під час виконання програми. Для цього слід описати цей метод в класі форми, розташувавши його заголовок в інтерфейс ній частині та реалізувавши його в описовій частині модуля:

……………..

Interface

……………..

TForm1=class(TForm)

……………..

Private

Edit1: TEdit;

Procedure EditEvent(Sender: TObject; var Key: Char);

……………..

Imlementation

……………..

Procedure TForm1.EditEvent(Sender: TObject; var Key: Char);

begin

if Key=’x’ then key:=#0;

end;

……………..

Для призначення даного обробника елементу керування слід занести посилання на метод у властивість OnKeyPress, використавши назву методу:

……………..

Procedure TForm1.Button1Click(Sender: TObject);

begin

Edit1:=TEdit1.Create(Panel1);

Edit1.left:=20;

Edit1.Top:=5;

Edit1.Width:=100;

Edit1.Height:=30;

Edit1. OnKeyPress:=EditEvent;

Edit1.Parent:=Panel1;

end;

……………..

Використання масивів компонентів

Використання посилань на компоненти не має будь-яких обмежень, тому існує можливість організації масивів таких посилань:

var RTComponents: array[1..10] of TComponents;

………………..

Procedure TForm1.OnKeyPress(Sender: TObject; var Key: Char);

var i: integer;

begin

for i:=1 to 10 do

if sender= RTComponents[i] then ……………

end;

………………..

Сухарев с.467

Лекція 19. Меню та панелі в стилі xp

Для того, щоб створити меню та панелі в стилі XP в Delphi-проекті використовуються компоненти ActionManager, ActionMainMenuBar та ActionToolBar. Вони находяться на вкладці Additional Палітри компонентів IDE. Ці компоненти спрощують та покращують програмування.

Принципи дії цих компонентів розглядаються на прикладі конкретного проекту.

Створюється новий проект і на його головній формі розташовуються компоненти ActionManager, ActionMainMenuBar та ActionToolBar. Для покращення інтерфейсу можна також встановити набір катринок ImageList з вкладки Win32. В цей набір додаються картинки розміром 16 16 для майбутніх кнопок та пунктів меню. У властивості Images компоненту ActionManager зазначається створений набір картинок.

Д алі створюється набір дій (action – дія). Подвійне клацання на компоненті спричиняє появу вікна, зображеного на рис.1.

Рис.1 Вікно створення дій

Щоб створити нову дію, слід клацнути на кнопці з контекстним надписом New action, що розташована праворуч від списку вибору з обраним елементом (All Action) у діалоговому вікні або натиснути кнопку Insert на клавіатурі. У списку Actions: з’явиться новий елемент Action1. В інспекторі об’єктів для цього елемента слід задати властивості Category значення «Файл», а властивості Caption – значення «Новий». Це призведе до появи в списку Categories категорії «Файл» та перейменування елементу Action1 на «Новий» у списку Actions.

Щоб додати елементи до категорії «Файл» слід у списку Categories виділити елемент з цією назвою та додати нову дію. Нова категорія додається створюється шляхом зміни властивості Categories однієї з дій списку Actions на нову назву категорії. За цим принципом в проект вносяться такі зміни:

  • До категорії «Файл» додаються дії «Редагувати», «Видалити», «Вихід».

  • Створюється нова категорія «Допомога», що містить дію «Про програму».

  • Діям ставляться у відповідність картинки з набору ImageList шляхом вибору їх зі списку властивості ImageIndex.

Видалення дії зі списку Actions здійснюється з використанням кнопки з контекстною підказкою Delete, що розташована праворуч від кнопки додавання нових дій у діалоговому вікні, або шляхом натискання кнопки Delete на клавіатурі. Для видалення категорії слід видалити всі дії, пов’язані з нею. Остання дія буде видалена разом з категорією.

Створені категорії дій визначаються в якості пунктів головного меню шляхом їх буксирування на компонент ActionMainMenuBar. Дії кожної з категорій автоматично стають командами відповідних пунктів меню.

Рис.2. Меню «Файл»

Команди меню можна розділити горизонтальною лінією шляхом буксирування кнопки з надписом Drag to create Separators в потрібне місце між командами.

Якщо запустити створений проект на виконання, то команди пунктів меню не матимуть доступу. Виправити цю ситуацію можна шляхом створення обробників подій OnExecute для кожної з команд меню. Після цього, всі команди меню, для яких були створені реалізації подій OnExecute, будуть мати доступ для використання.

На основі дій, визначених у компонентів ActionManager, можна створити кнопки на панелі ActionToolBar. Після буксирування категорії «Файл» на панель інструментів всі її дії будуть відображені на ній у вигляді кнопок. Категорія «Допомога» буксирується аналогічним чином. Порядок розташування кнопок на панелі інструментів встановлюється також шляхом буксирування. Вигляд головного вікна проекту набуде вигляду, наведеного на рис.3.

Рис.3. Результат створення кнопок

Зазвичай на панелі інструментів кнопки відображаються без надписів. Щоби виправити цей недолік слід виділити компонент ActionManager і двічі клацнути в Інспекторі об’єктів праворуч від властивості ActionBars. Це спричинить появу вікна, зображеного на рис.4.

Рис.4. Вікно налаштування панелей Action

В цьому вікні створені два елементи ActionBar. Один пов'язаний з меню ActionMainMenuBar1, а другий – з панеллю кнопок ActionToolBar1. Для того, щоби видалити назви кнопок на панелі інструментів слід виконати наступні дії:

  • Виділити рядок «1 – ActionBar ->ActionToolBar1 і двічі клацнути по властивості Items.

  • У вікні, що відкрилося, клацнути лівою кнопкою миші, для того, щоби в Інспекторі об’єктів отримати властивості самого вікна, а не його елементів. Властивості CaptionOptions встановити значення coNone.

Після виконання цих дій надписи кнопок на панелі інструментів зникнуть.

Біблія. С345

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]