End.
Begin
Const
Implementation
Var
Public
Private
Type
Uses
Листинг 5.5. Ввод массива строк из компонента Memo
unit fr_memo_; interface
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs, Menus, StdCtrls;
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Label1: TLabel;
procedure ButtonlClick(Sender: TObject);
{ Private declarations }
{ Public declarations }
end;
Forml: TForm1;
($R *.DFM}
procedure TForml.ButtonlClick(Sender: TObject);
SIZE=5; // размермассива var
a:array[l..SIZE]of string[30]; //массив
n: integer; // количество строк, введенных в поле Memo
i:integer; // индекс элемента массива
st :string;
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;
Основную работу выполняет процедура TForm1.Button1Click, которая сначала проверяет, есть ли в поле Memo1 текст. Если текст есть (в этом случае значение свойства Lines.Count больше нуля), то процедура сравнивает количество введенных строк и размер массива. Если это количество превышает размер массива, то программа изменяет значение п, тем самым подготавливает ввод только первых SIZE строк.
На рис. 5.6 приведен вид диалогового окна приложения Ввод массива. После щелчка на командной кнопке Ввод появляется окно (рис. 5.7), которое содержит значения элементов массива, полученные из Memo-поля.
Рис. 5.6. Окно приложения Ввод массива
Рис. 5.7. Массив, введенный из Memo-поля
Тема: Обработка массивов. Стандартные функции для массива целых и вещественных чисел