Основы языка Delphi

  8b693973     

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



Листинг 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.

Основную работу выполняет процедура TForm1.Button1Click, которая сначала проверяет, есть ли в поле Memo1 текст. Если текст есть (в этом случае значение свойства Lines.Count больше нуля), то процедура сравнивает количество введенных строк и размер массива. Если это количество превышает размер массива, то программа изменяет значение п, тем самым подготавливает ввод только первых SIZE строк.

На Рисунок 5.6 приведен вид диалогового окна приложения Ввод массива. После щелчка на командной кнопке Ввод появляется окно (Рисунок 5.7), которое содержит значения элементов массива, полученные из Memo-поля.



Содержание раздела