Тема: Memo +
Показать сообщение отдельно
  #3  
Старый 25.02.2014, 06:31
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Если принципиально использование массива, то тогда вот
Код:
...
//    Memo1: TMemo;
//    Button1: TButton;
//    Edit1: TEdit;
...

procedure TForm1.Button1Click(Sender: TObject);
var
 i, cnt: integer;
 arr: array of string; //integer;
 s: string;
begin
// Edit1.Text:= '1 2 3 4 5 6';
 cnt:= 0;

 // кол-во чисел в строке
 for i := 1 to Length(Edit1.Text) do
  if Edit1.Text[i] = ' ' then Inc(cnt);

   // инициализация массива
 SetLength(arr, cnt+1);
 s:= '';
 cnt:= 0;

  // заполнение массива
 for i:= 1 to Length(Edit1.Text) do
  begin
   if  Edit1.Text[i] <>  ' '  then s:= s + Edit1.Text[i];
   if (Edit1.Text[i]  =  ' ') or (i = Length(Edit1.Text)) then
    begin
     arr[cnt]:= s; //StrToInt(s);
     s:= '';
     Inc(cnt);
    end;
  end; {for i}

  // определяем кол-во строк в Memo1
 cnt:= Length(arr) div 2;
 if Length(arr) mod 2 > 0 then Inc(cnt); // не четный ряд

 Memo1.Clear;

  // и собсно сам лисапет с заполнением Memo
 for i := 0 to cnt-1 do
  begin

   // элемент  первого столбца
   s:= '| ' + arr[i];//IntToStr(arr[i]);
 
   // элемент колонки 2 
  if i * 2 < Length(arr)-1 then
     s:= s + ' | ' + arr[cnt+i] //IntToStr(arr[i])
    else
     s:= s + ' | '; // пустышка на случай нечётного размера
   Memo1.Lines.Add(s);
  end; {for i}
end;
Ответить с цитированием