mozok.click » Інформатика » Елемент керування. Багаторядкове текстове поле
Інформація про новину
  • Переглядів: 4204
  • Автор: admin
  • Дата: 14-09-2017, 06:31
14-09-2017, 06:31

Елемент керування. Багаторядкове текстове поле

Категорія: Інформатика

Компонент Memo

є вікном редагування багаторядкового тексту. Ви вже працювали з властивістю Text компонента Memo, яка дозволяє отримати доступ до тексту як до цілого:

Memol.Text := 'Це текстовий рядок у вікні редагування';

Ознайомимось із властивостями компонента Memo, які дозволяють працювати з масивами рядків.

Властивості компонента Memo

Назва

Призначення

Lines

Містить список наявних елементів

Lines.Count

Визначає кількість елементів у списку Lines. Елементи мають номери від 0 до Lines.Count - 1

ScrollBars

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

Текст у полі Memo розміщується по рядках. Рядки в списку Memo утворюють масив Lines типу TString.

Щоб увести в поле Memo рядки в режимі розробки, потрібно:

1) виділити на формі елемент керування Memo (рис. 33.1);

2) у вікні Інспектор об'єктів клацнути кнопку

праворуч від властивості Lines;

3) у вікні Редактор рядків увести рядки (рис. 33.2);

4) клацнути кнопку ОК.



Після клацання кнопки ОК вміст вікна відобразиться в полі Memo.

Тепер до i-го рядка можна звернутися за його індексом Memo1.Lines[i].

У вікні Редактор рядків можна впорядкувати рядки за зростанням або спаданням (рис. 33.3, а). Результат упорядкування рядків за зростанням наведено на рис. 33.3, б.

Упорядкування елементів списку Memol.Lines відбувається у лексикографічному порядку, оскільки вони мають тип String.

Додавання рядків під час виконання програми

Додавати елементи до списку Memol.Lines можна в ході виконання програми. Значення кожного елемента списку слід уводити в окремому рядку поля Memo і після введення кожного рядка натискати клавішу Enter.


На етапі розробки інтерфейсу за допомогою Редактора рядків до поля Memol додано 4 рядки (рис. 33.4, а). У процедурі обробки події onclick для кнопки у поле Editi виводиться значення властивості Memol.Lines.Count. Якщо в ході виконання програми в поле Memol з клаватури додати новий рядок, значення властивості Memol.Lines.Count збільшиться на одиницю (рис. 33.4, б).

Значення Ьіпєб[і] доступні як для читання, так і для запису. Тому текст у полі Мето можна редагувати не тільки за допомогою клавіатури, а й програмним способом.

Задати значення нульовому елементу масиву МетоІ.ипеБ (рис. 33.5):

Мето1.ипе$[0] := 'Перший рядок';

Методи компонента Memo

Назва

Виклик методу

Призначення

Add()

Memo1 .Lines.Add(Text)

Додавання нового рядка Text у кінець списку

Insert()

Memo1.Lines.Insert(N, Text)

Вставка рядка Text перед рядком з індексом N

Delete()

Memo1 .Lines.Delete(N)

Вилучення рядка з індексом N

Clear

Memo1.Clear

Очищення вмісту поля Memo

Додати елементи до масиву Memol.Lines:

Memo1.Lines.Add(^e буде останній рядок');

Memo1.Lines.Insert(2, 'Цей рядок буде третім'); // Відлік від нуля!

Вилучити рядок з індексом і:

Memol.Lines.Delete(i);

Вивести значення елементів масиву words до поля Memol. var words: array[1..5] of String; i: Integer; begin {...}

Memol.Clear;

For i := 1 to 5 do

Memol.Lines. Add(words[i]);

end;

Знайти суму цілих чисел, які вводяться з клавіатури у поле Memo. Кількість чисел не перевищує 100 (рис. 33.6).

var Posl: array[1..100] of Integer; { масив для збереження чисел }

N, i, Sum: Integer; begin

N := Memol.Lines.Count; // кількість рядків { знаходження суми }

For i := 1 to N do Posl[i] := StrToInt(Memo1.Lines[i - 1]); Sum := 0;

For i :=1 to N do Sum := Sum + Posl[i];

Edit1.Text := IntToStr(Sum); end;

Знайти рядок '32' в масиві Memo1.Lines (рис. 33.7): var i: Integer; begin

For i := 0 to Memo1.Lines.Count - 1 do begin

If Memo1.Lines[i] = '32' Then Edit1.Text := 'Знайдено в рядку ' + IntToStr(i); end;

end;

Таким чином, компонент Memo є зручним інструментом для введення і виведення значень елементів одновимірного масиву.


Питання для самоперевірки

1. Яка властивість компонента Memo містить список наявних елементів?

2. Як визначити кількість елементів у списку Memol. Lines?

3. Як запрограмувати додавання елемента в кінець списку поля Memol?

4. Як запрограмувати вставляння елемента перед п’ятим рядком у списку поля Memol?

5. Запишіть оператор, призначений для виведення п’ятого рядка зі списку Memol у текстове поле Editi.

6. Складіть програму для розв’язання задачі: «Масив Numbers[1..10] заповнити випадковими цілими числами в межах від 1 до 100 і вивести значення елементів масиву в поле Memol. Визначити, в якому рядку списку Memol знаходиться елемент, що дорівнює цілому числу К (значення К уводиться в поле Editi).»

Вправа 33

Створити програму-перекладач з української мови на англійську.

1) Створіть новий проект. Змініть значення властивості Caption форми і розмістіть на формі два компоненти Memo згідно з рисунком. Властивості ScrollBars елементів Memol, Memo2 надайте значення ssVertical для появи вертикальних смуг прокручування. За допомогою Редактора рядків масив Memol.Lines заповніть українськими словами, масив Memo2.Lines — їхніми англійськими відповідниками.

Розмістіть на формі компоненти Label, Button, Edit і налаштуйте їхні властивості згідно з рисунком.

2) Опишіть глобальні змінні для збереження масивів слів: var Forml: TForml;

Eng_words, Ukr_words: array[0..100] of String;

3) Створіть процедуру обробки події onclick для кнопки Заповнити масиви слів. Запишіть оператори для заповнення масивів Ukr_words і Eng_words масивами

Memo1.Lines і Memo2.Lines:

var i: Integer;

begin

For i := 0 to Memo1.Lines.Count – 1 do

begin

Ukr_words[i] := Memo1.Lines[i];

Eng_words[i] := Memo2.Lines[i];

end;

end;

4) Створіть процедуру обробки події onclick для кнопки Перекласти англійською. Запишіть оператори для перекладу українського слова на англійську мову:

var i: Integer; S: String;

begin

S := Edit1.Text; // вводимо слово, яке бажаємо перекласти

i := –1;

Repeat i := i + 1; // збільшуємо індекс елемента

Until Ukr_words[i] = S; // поки не знайдемо слово S

Edit2.Text := Eng_words[i]; { виводимо елемент із масиву англійських

слів із таким індексом, як у слова S у масиві українських слів }

end;

5) Створіть процедуру обробки події Onйick для кнопки Перекласти українською.

6) Перевірте роботу програми. Збережіть проект у папці Вправа 33. Завершіть роботу за комп’ютером.

Комп'ютерне тестування

Виконайте тестове завдання 33 із автоматичною перевіркою на сайті «Інтерактивне навчання».

 

Це матеріал з підручника Інформатика 9 клас Бондаренко

 






^