Иллюстрированный самоучитель по Delphi 7 для начинающих

Использование компонента Memo

Следующая программа, текст которой приведен в листинге 5.5, демонстрирует использование компонента Memo для ввода символьного массива.

Основной цикл процедуры ввода символьного массива из компонента Memo может выглядеть так:

for i: = l to SIZE do
a [ i ]: = Memo1.Lines[i];

Где:

  • SIZE – именованная константа, определяющая размер массива;
  • а – массив;
  • Memo1 – имя Memo-компонента;
  • Lines – свойство компонента Memo, представляющее собой массив, каждый элемент которого содержит одну строку находящегося в поле Memo текста.

Форма программы приведена на рис. 5.5. Помимо поля Memo она содержит командную кнопку (Button1), при щелчке на которой выполняется ввод значений элементов массива из поля Memo.

Иллюстрированный самоучитель по Delphi 7 для начинающих › Массивы › Использование компонента Memo
Рис. 5.5. Диалоговое окно приложения Ввод массива

Листинг 5.5. Ввод массива строк из компонента Memo.

unit fr_memo_; interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs, Menus, StdCTRLs;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Label1: TLabel;
procedure ButtonlClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Forml: TForm1;
implementation
($R *.DFM}
procedure TForml.ButtonlClick(Sender: TObject);
const
SIZE=5; // размер массива var
a:array[l..SIZE]of string[30]; //массив
n: integer; // количество строк, введенных в поле Memo
i:integer; // индекс элемента массива
st: string;
begin
n: = Memo1.Lines.Count;
if n = 0 then begin
ShowMessage('Исходные данные не введены!');
Exit; // выход из процедуры обработки события
end;
// в поле Memo есть текст
if n > SIZE then begin
ShowMessage('Количество строк превышает размер массива.');
n: = SIZE; // будем вводить только первые SIZE строк
end;
for i: = 1 to n do
a[i]: = Form1.Memol.Lines[i-1]; // строки Memo пронумерованы с нуля
// вывод массива в окно сообщения
if n > 0 then begin
st: = 'Введенный массив:'+#13;
for i: =1 to n do
st: = st+IntToStr(i)+' '+ a[i]+f13; ShowMessage(st);
end;
end;
end.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.