опадуть. Тому ми замінимо компонент на що дозволяє зберігати текст у форматі rtf. Для цього необхідно натиснути Alt + F12. На екрані з'явиться вікно з вмістом файлу Unit1.dfm (даний файл ресурсів форми містить всі налаштування форми, зроблені за допомогою Інспектора об'єктів). Знайдіть у цьому файлі опис компонента object Memo1: T Memo і замініть його на Memo1: TRichEdit. Потім знову натисніть Alt + F12. При компіляції погодитеся з тим, що вам запропонує Delphi. p align="justify">. Помістимо на панель ще три кнопки SpeedButton, які відповідатимуть за вирівнювання тексту по лівому краю, по правому краю і по центру. Задамо їх властивості наступним чином:
КомпонентGroupIndexTagSpeedButton540SpeedButton641SpeedButton742
У властивостях Caption введемо В«<В», В«>В» і В«=В» відповідно.
Для 1-й кнопки створимо обробник OnClick:
with sender as tspeedbutton do.Paragraph.Alignment: = TAlignment (tag)
В
Оброблювачі цієї події для інших кнопок зв'яжемо з SpeedButton5Click
. Встановити на форму компонент StatusBar, що знаходиться в палітрі Win32. Два рази клацнути на компоненті, щоб перейти у вікно редагування StatusBar. У вікні редагування три рази натиснути кнопку Додати, щоб отримати три панелі на компоненті. На перших двох буде відображатися поточний стан клавіш CapsLock і NumLock. На третій - системний час. p align="justify">. Додати на форму компонент Timer, розташований на палітрі System. додамо до списку глобальних змінних KS: Tkeyboardstate
Створити обробник OnTimer: (KS); StatusBar1 doKS [VK_Capital] = 1 then panels [0]. Text: = 'CAP' else panels [0]. Text: =''; KS [VK_NumLock ] = 1 then panels [1]. Text: = 'Num' else panels [1]. Text: ='';. Panels [2]. Text: = TimeToStr (Time);
end;
Щоб не було секундною затримки після завантаження програми, для обробника OnCreate форми виберемо Timer1Timer.
. Створимо контекстне меню. Встановити на форму компонент PopupMenu. Створимо пункти - Cut, Copy, Paste. У обробники подій OnClick запровадити відповідно наступний код:
Для пункту Copy: Memo1. CopyToClipboard;
Для пункту Cut: Memo1. CutToClipboard;
Для пункту Paste: Memo1.PasteFromClipboard;
У властивості Memo1 PopUpMenu виберемо PopUpMenu1
Для того, щоб недоступні команди (якщо текст не виділений або буфер порожній) виділялися сірим кольором зробимо наступне. У список uses додамо модуль Clipbrd (він забезпечує доступ до об'єкта Clipboard - буферу обміну). p align="justify"> Створимо обробник OnPopUp для PopUpMenu
Виконати самостійно:
Створити кнопку для закреслити шрифту (властивість Style - fsStrikeOut, т.е Tag = 3)
Зробити спливаючі підказки для всіх кнопок.
Додати на панель кнопку для додавання маркерів. У обробнику OnClick для нової кнопки помістити код:
if (sender as TSpeedButton). down then.Paragraph.Numbering: = nsBullet else.Paragraph.Numbering: = nsNone
Використовуючи властивість ShortCut пунктів меню призначити їм комбінації гарячих клавіш, наприклад - Open - Ctrl + O, Save - Ctrl + S і т.п.
Створити кнопку Undo, при натисканні якої буде скасовано останню дію. У обробнику кнопки помістити код:
Memo1.Undo.
Якщо скасовувати нічого, кнопка повинна бути недоступною (для цього використовуємо властивість Memo1.CanUndo).
6. Додати в контекстне меню пункти Виділити всі (метод SelectAll) і Видалити (ClearSelection). Якщо операції недоступні, пункти повинні бути неактивними. У першому випадку можна використовувати значення memo1.text <> .
. Створити пункт меню Про програму. p align="justify"> Створити нову форму. Змінити її заголовок. Помістити на неї компонент Memo. Встановити властивість компонента ReadOnly в True. Клацнути два рази по властивості Lines і ввести текст. Змінити довільним чином властивості Color і Font компоненту Memo. p align="justify"> У обробнику події OnClick пункту меню Про програму написати код:
Form2.showmodal
Результатом виконання даної лабораторної роботи є створений згідно із завданням програмний продукт. Виконане завдання повинне бути пред'явлено викладачеві в електронному вигляді. У ході захисту лабораторної роботи ...