Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_lektsiy.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.14 Mб
Скачать

Лекція № 10. Компоненти для введення та редагування тексту.

План.

  1. Клас TStrings. Властивості Text, Lines, Items.

  2. Методи для роботи і текстом: AddString, AddObject, Assing, Equals, Delete, Move, IndexOf, Pos.

  3. Конструкції коду для обмеження типів символів. Конструкції коду для створення комбінацій клавіш.

1. Клас tStrings. Властивості Text, Lines, Items.

Для відображення різноманітних надписів на формі використовуються компоненти Label, StaticText та Panel (хоча основне призначення в нього інше).

Компонент Label (Standard) – текстова позначка, що не змінюється користувачем. Основна властивість – Caption типу AnsiString. Для оформлення тексту з декількох фрагментів використовується операція конкатенації „+”:

Label1 –> Caption = ”Кількість студентів: ” + IntToStr(I);

Єдиними доступними елементами оформлення надпису є колір фону Color та шрифт Font. Має властивість WordWrap – допустимість перенесення слів довгого надпису на новий рядок по досягненню правого краю компонента.

Розмір позначки Label визначається властивістю AutoSize: коли значення властивості дорівнює true, висота та ширина компонента автоматично визначається розміром надпису (шрифту).

Якщо ж AutoSize дорівнює false, то вирівнювання тексту всередині компонента визначається властивістю Alignment.

2. Методи для роботи і текстом: AddString, AddObject, Assing, Equals, Delete, Move, IndexOf, Pos.

У C++Builder є кілька стандартних компонентів для управління редагуванням: Edit, LabeledEdit, MaskEdit, Memo, RichEdit.

Компонент Edit (Standard) являє собою однорядковий елемент редагування. Основна властивість – Text типу AnsiString. Якщо присвоювати цьому типу числову інформацію, то вона буде автоматично перетворюватися у рядок.

Наприклад, код виводить у рядок редагування текст „2,5”:

Edit1–>Text=5./2;

Edit1–>Text=2.5;

Проте, при зчитуванні з рядка редагування числової інформації необхідно використовувати функції перетворення типів StrToFloat() чи StrToInt(). Наприклад,

int A= StrToInt(Edit1–>Text);

Властивість AutoSize автоматично змінює лише висоту, але не ширину, рядка редагування при зміні шрифту. Цей елемент не має властивості Alignment (оскільки текст може бути вирівняний лише за лівим краєм).

Властивість MaxLength визначає максимальну довжину тексту, що вводиться. Якщо MaxLength=0, то кількість символів не обмежується.

Встановлення властивості ReadOnly в значення true задає текст лише для читання без можливості його редагування.

      1. Введення та відображення цілих чисел.

Компонент СSpinEdit ( Samples) – кнопка-лічильник з вікном редагування. Основна властивість – Value, яка визначає поточне значення числа.

Властивості MinValue,MaxValue задають відповідно мінімальне та максимальне значення чисел.

      1. Багаторядкові вікна редагування.

Для редагування багаторядкового тексту використовуються компоненти Memo та RichEdit.

Компонент Memo (Standard) являє собою багаторядковий елемент редагування. Головна властивість цього компонента – Lines. В ній зберігається текст, що вводиться користувачем. Дозволяється зберігати вміст компонента на диску чи завантажувати в цей компонент текст з файлу.

В компоненті Memo формат (шрифт, його атрибути, вирівнювання) однаковий для всього тексту та визначається властивістю Font.

Компонент RichEdit (Win32) – являє собою маленький текстовий редактор. Компонент працює з текстом у збагаченому форматі RTF. Основна особливість даного компонента – це можливість форматування окремих абзаців чи фрагментів тексту. У цьому компоненті можна змінювати шрифти, використовувати відступи, задавати напівжирний, курсивний чи підкреслений шрифт та інше. Таке форматування виконується на основі двох властивостей – SelAttributes та Paragraph (доступні лише під час виконання додатку).

Головна властивість компонента - властивість Lines типу TStrings.

Властивість SelAttributes типу TTextAttributes визначає атрибути виділеного тексту або, якщо нічого не виділено, то атрибути нового тексту. Наприклад, код дозволяє змінювати атрибути шрифту:

if(FontDialog1–>Execute())

RichEdit1–>SelAttributes–>Assign(FontDialog1–>Font);

RichEdit1–>SetFocus();

Властивість Paragraph типу TParaAttributes відповідає за вирівнювання, відступи та інше в межах поточного абзацу. Вона має власні підвластивості, що й визначають характеристики поточного абзацу тексту. Наприклад, код виконує вирівнювання поточного (виділеного) абзацу:

RichEdit1–> Paragraph–> Alignment=taLeftJustify; // за лівим краєм

RichEdit1–> Paragraph–> Alignment=taCenter; // за центром

RichEdit1–>Paragraph–>Alignment=taRightJustify; // за правим краєм

//або

//код відображає поточний (виділений) абзац як список – з маркерами:

RichEdit1–> Paragraph–> Numbering=nsBullet;

У компонента RichEdit є можливість збереження та завантаження тексту в форматі RTF. Наприклад:

RichEdit1–> Lines–> LoadFromFile(“text.rtf); // завантаження

RichEdit1–> Lines–> SaveToFile(“text.rtf); // збереження

Основні спільні властивості елементів редагування Memo та RichEdit:

Основна властивість компонентів Memo та RichEdit – Lines, що містить текст вікна у вигляді списку рядків і має тип TStrings. Доступ до окремого рядка тексту можна отримати за допомогою властивості Strings[int Index]. Наприклад, текст першого рядка:

Memo1–>Lines–> Strings[0];

Для додавання нового рядка в кінець тексту можна використати методи Add() чи Append() властивості Lines, для видалення рядка – метод Delete(), для знищення всього тексту – метод Clear(). Наприклад:

Memo1–> Clear();

Memo1–> Lines–> Add(“The End”);

Властивість лише для читання Count вказує кількість рядків у тексті.

Властивості Alignment та WordWrap мають такий самий зміст, що й для позначок Label, й визначають вирівнювання тексту та допустимість перенесення довгих рядків.

Властивості MaxLength та ReadOnly мають такий самий зміст, що й для рядка редагування Edit, й визначають максимальну довжину тексту та допустимість редагування тексту.

Властивість ScrollBars визначає наявність смуг прокручування тексту у вікні.

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