русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Створення області редагування та панелі керування файлом


Дата добавления: 2015-07-09; просмотров: 727; Нарушение авторских прав


20. Використати форму з панеллю інструментів, створену під час виконання попередньої лабораторної роботи.

21. Для створення панелі керування файлом використати контейнерний компонент GroupBox, прикріпивши його до нижньої частини форми (властивості Align надати значення alButton). Властивості Caption надати значення “Збереження та друк …”. Розмір контейнеру слід встановити заздалегідь більшим, ніж необхідно для зручності розташування в ньому компонентів.

22. Додати на панель GroupBoxкомпоненти, наведені в табл.6.

Таблиця 6. Перелік компонентів на панелі GroupBox

Тип компоненту Назва (Name) Розташування (Left, Top) Розміри (Width, Height) Надпис (Caption)
Label Label3 8,17 53,13 Формат:
Label Label4 8,38 38,13 Файл:
RadioButton rbRTF 72,16 137,17 Rich Text Format (*.rtf)
RadioButton rbTextOnly 208,16 121,17 Тільки текст (*.txt)
Edit eFileName 56,39 473,19
SpeedButton sbLoad 16,64 105,21 Завантажити
SpeedButton sbSave 128,64 105,21 Зберегти
SpeedButton sbPrint 240,64 105,21 Надрукувати

23. Встановити вертикальний розмір панелі (властивість Height): 90.

24. У вільну область форми додати компонент RichEdit. Змінити його назву (властивість Name) на reEditor. Цей компонент повинен займати всю вільну область, яка залишилася від панелі інструментів та панелі керування файлом. Тому слід присвоїти властивості Align компонента reEditor значення alClient.

Дружній інтерфейс

25. На формі розташовано досить багато елементів керування. Призначення деяких з них може бути незрозумілим для користувача. Тому доцільно використовувати швидкі підказки, які з’являються під час наведення покажчика миші на компонент.



26. Щоб показати, яким самим чином слід працювати з компонентом, доцільно встановити для кожного з них спеціальний курсор миші. Рядки введення автоматично підтримують зміну покажчика миші. Тому зміна курсору для них не потрібна.

27. Всім елементам керування, які мають на увазі натискання кнопки миші (кнопкам SpeedButton,спискам вибору ComboBoxта ColorBox, допоміжним компонентам UpDown, залежним перемикачам RadioButton) слід встановити курсор (властивість Cursor) crHandPoint.

28. Надати властивостям Hint для компонентів значення, наведені в табл.7. На цьому візуальне проектування практично завершене. В подальшому візуальний добудовник буде застосовуватися лише для призначення обробників подіям інтерфейсних елементів, розташованих на формі.

Таблиця 7. Перелік компонентів, для яких слід встановити підказки

Компонент Hint
cbFontSize Розмір шрифту, який слід встановити для виділення, в пунктах (1/72 дюйми)
sbBold Застосувати до шрифту виділення атрибут "Напівтовстий"
sbItalic Застосувати до шрифту виділення атрибут "Похилий "
sbUnderLined Застосувати до шрифту виділення атрибут "Підкреслений "
sbStrikeOut Застосувати до шрифту виділення атрибут "Перекреслений "
clbColor Вибір кольору для шрифту виділення
sbLeftAlign Встановити для поточного абзацу вирівнювання по лівому краю
sbCenterAlign Встановити для поточного абзацу вирівнювання по центру
sbRightAlign Встановити для поточного абзацу вирівнювання по правому краю
sbNumbering Зробити поточний абзац елементом списку
sbUndo Скасувати останні зміни
sbRedo Скасувати операцію Undo
eLeftIdent Відступ поточного абзацу відносно його першого рядку
eRightIdent Відступ поточного абзацу від правої границі
eFirstIdent Відступ першого рядку абзацу від лівої границі
rbRTF Документ зберігається та читається в форматі RTF
rbTextOnly Документ зберігається та читається в звичайному текстовому форматі
eFileName Назва файлу для читання та запису з зазначенням повного шляху
sbLoad Читати документ з диску
sbSave Зберегти документ на диску
sbPrint Надрукувати документ на принтер, встановлений за замовчуванням

Наповнення функціональністю: Текстовий редактор повинен виконувати наступні дії:

a. Відкриття файлу виконується натисканням кнопки з надписом "Завантажити" панелі керування файлом. При цьому використовується ім’я файлу, зазначене в рядку введення з надписом "Файл:".

b. Переміщення текстового курсору в середині редактора RichEdit за допомогою миші або клавіш зі стрілками клавіатури. Оскільки при переміщенні курсор потрапляє в фрагменти тексту, які використовують різні настройки форматування, то програма повинна реагувати на зміни форматування поточного абзацу та виділення зміню стану інтерфейсних компонентів. Наприклад, при потраплянні курсору в текст, який має напівтовсте накреслення, кнопка "В" повинна прийняти натиснутий стан.

c. Зміна стану елементів керування з метою зміни форматування поточного абзацу або виділення.

d. Збереження файлу натисканням кнопки з надписом "Зберегти". При цьому, так само як і під час читання документу з файлу, використовується ім’я файлу, зазначене в рядку введення з надписом "Файл:".

29. Для забезпечення коректності читання документу з файлу слід використовувати стан залежних перемикачів на панелі керування файлом, щоби правильно визначити тип документу, з яким збирається працювати користувач. Тип документу заноситься у властивість PlainText логічного типу компоненту RichEdit. Після цього викликається метод LoadFromFile з зазначенням імені файлу, яке ввів користувач в рядку редагування. Обробник події OnClick має наступний текст:

procedure TForm1.SpeedButton1Click(Sender: TObject); {Завантажити}

begin

reEditor.PlainText:=rbTextOnly.Checked; reEditor.Lines.LoadFromFile(eFileName.Text);

end;

30. Аналогічним чином відбувається запис документу в файл:

procedure TForm1.SpeedButton2Click(Sender: TObject); {Зберегти}

begin

reEditor.PlainText:=rbTextOnly.Checked; reEditor.Lines.SaveToFile(eFileName.Text);

end;

31. Форматування поточного абзацу або виділення в документі, що редагується, можна визначити з використанням властивостей компоненту RichEdit. Відреагувати на зміну самого абзацу або виділення можна, реалізувавши обробник події OnSelectionChange. Він викликається кожний раз, коли текстовий курсор переміщується в середині документу і має наступний текст:

{Контроль форматування в поточному абзаці або виділенні}

procedure TForm1.reEditorSelectionChange(Sender: TObject);

begin

cbFontSize.Text:=inttostr(reEditor.SelAttributes.Size);

sbBold.Down:=(fsBold in reEditor.SelAttributes.Style);

sbItalic.Down:=(fsBold in reEditor.SelAttributes.Style);

sbUnderlined.Down:=(fsBold in reEditor.SelAttributes.Style);

sbStrikeOut.Down:=(fsBold in reEditor.SelAttributes.Style);

clbColor.Selected:=reEditor.SelAttributes.Color;

sbLeftAlign.Down:=(reEditor.Paragraph.Alignment=taLeftJustify);

sbCenterAlign.Down:=(reEditor.Paragraph.Alignment=taCenter);

sbRightAlign.Down:=(reEditor.Paragraph.Alignment=taRightJustify);

sbNumbering.Down:=(reEditor.Paragraph.Numbering=nsBullet);

eLeftIdent.Text:=inttostr(reEditor.Paragraph.LeftIndent);

eRightIdent.Text:=inttostr(reEditor.Paragraph.RightIndent);

eFirstIdent.Text:=inttostr(reEditor.Paragraph.FirstIndent);

end;

Слід звернути увагу на те, що характеристики форматування, які аналізуються в даному обробнику, представлені двома групами. В першій групі – характеристикам форматування абзацу – належать такі параметри, як вирівнювання та відступи. До другої – характеристикам форматування виділення – належать параметри шрифту та кольору тексту. Відповідно, для аналізу параметрів різних груп використовуються різні структури компоненту RichEdit: Paragraph та SelAttributes.

32. Для зміни форматування виділення або абзацу слід реалізувати обробники елементів керування, в яких встановлюються відповідні атрибути тексту за допомогою властивостей SelAttributesта Paragraph компоненту reEditor. Наприклад, для установки атрибуту накреслення "Напівтовстий" поточного виділення слід реалізувати обробник події OnClickкомпоненту sbBold.Він має наступний текст:

{Установка атрибуту "Напівтовстий"}

procedure TForm1.sbBoldClick(Sender: TObject);

begin

if sbBold.Down then reEditor.SelAttributes.Style:=reEditor.SelAttributes.Style+[fsBold]

else reEditor.SelAttributes.Style:=reEditor.SelAttributes.Style-[fsBold]

end;

Аналогічним чином слід реалізувати обробники подій OnClickдля компонентів sbItalic, sbUnderlined, sbStrikeOut.

33. Вирівнювання тексту здійснюється обробниками подій компонентів sbLeftAlign, sbCenterAlign, sbRightAlig. Наприклад, для компонентів sbLeftAlign текст обробника такої події наступний:

procedure TForm1.sbLeftAlignClick(Sender: TObject); {Вирівнювання по лівому краю}

begin

if sbLeftAlign.Down then reEditor.Paragraph.Alignment:=taLeftJustify;

end;

34. Призначення кольору тексту для виділення або абзацу можна здійснити з використанням обробника події OnChangeкомпоненту clbColor, який має текст:

{Вибір кольору користувачем - установка відповідного атрибуту поточному виділенню}

procedure TForm1.clbColorChange(Sender: TObject);

begin

reEditor.SelAttributes.Color:=clbColor.Selected;

end;

35. Нумерація рядків виділення здійснюється обробником події OnClick компоненту sbNumbering,який має наступний текст:

{Нумерація}

procedure TForm1.sbNumberingClick(Sender: TObject);

begin

if sbNumbering.Down then reEditor.Paragraph.Numbering:=nsBullet

else reEditor.Paragraph.Numbering:=nsNone;

end;

36. Обробники подій OnClick компонентів sbUndo та sbRedo мають наступний текст:

procedure TForm1.sbUndoClick(Sender: TObject); {UNDO}

begin

reEditor.Undo; sbRedo.Enabled:=true;

end;

procedure TForm1.sbRedoClick(Sender: TObject); {REDO}

begin

reEditor.Undo;

end;

37. Встановлення відступів реалізується обробниками події OnChangeкомпонентів eLeftIdent, eRightIdentта eFirstIdent. Наприклад, для компоненту eLeftIdentобробник події має текст:

{Установка відступу зліва для поточного абзацу}

procedure TForm1.eLeftIdentChange(Sender: TObject);

begin

try

reEditor.Paragraph.LeftIndent:=strtoint(eLeftIdent.Text);

except

end;

end;



<== предыдущая лекция | следующая лекция ==>
Наповнення панелі керування шрифтом | Современные проблемы управления.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.436 сек.