Слишком большой массив данных - ошибка

Здравствуйте уважаемые. Столкнулся с проблемой.В компонент мемо идет большой поток данные с одного массива компонента ValueListEditor. Данные с ValueListEditor1 он отображает в мэмо. Вот сама суть проблемы.
procedure TForm3.sButton1Click(Sender: TObject);
//var
//s, s1, s2, s3 : string;
begin
smemo1.Lines.Add(''+ValueListEditor1.Strings.ValueFromIndex[0]+' '
+''+ValueListEditor1.Strings.ValueFromIndex[1]+' '+
''+ValueListEditor1.Strings.ValueFromIndex[2]+' '+
''+ValueListEditor1.Strings.ValueFromIndex[3]+' '+
''+ValueListEditor1.Strings.ValueFromIndex[4]+' '+
''+ValueListEditor1.Strings.ValueFromIndex[5]+' '+
''+ValueListEditor1.Strings.ValueFromIndex[6]+' '+
''+ValueListEditor1.Strings.ValueFromIndex[7]+' '+

...и так далее до

''+ValueListEditor1.Strings.ValueFromIndex[329]+' '+
''+ValueListEditor1.Strings.ValueFromIndex[330]+' '+
''+ValueListEditor1.Strings.ValueFromIndex[331]+' '+
''+ValueListEditor1.Strings.ValueFromIndex[332]+' ');
Ошибка при компиляции
[DCC Fatal Error] Unit3.pas(36): E2156 Expression too complicated
Подскажите как упростить.P.S. Пробовал разбивать на переменные данный массив, потом переменные соединять, но в итоге аналогичная ошибка выходит.
5 ответов

Попробуйте сократить код. Зачем копи паста!
var
 s: string;
 i: Integer;
begin
 s := '';
 for i := 1 to 332 do
 s := s + ValueListEditor1.Strings.ValueFromIndex[i] + ' ';

 smemo1.Lines.Add(s);
end;


s := ValueListEditor1.Strings.ValueFromIndex[0];
for i := 1 to 332 do
 s := s + ' ' + ValueListEditor1.Strings.ValueFromIndex[i];
smemo1.Lines.Add(s);


Вот такая ошибка. Если Я правильно понимаю, то обращение идет к массиву которого нету. Действительно, парой в ValueListEditor.Stirng имеет что-то вроде такого кода icon[0]=icon.armor_t02_u_i00 icon[1]= icon[2]=Я обращаюсь как раз к второй колонки. И там пусто. Нужно чтоб просто ничего не выводило или табуляция....


Попробуйте так.
var
 i, c: Integer;
 s: string;
begin
 s := '';

 c := ValueListEditor1.Strings.Count;
 if c > 0 then
 begin
 s := ValueListEditor1.Strings.ValueFromIndex[0];
 for i := 1 to c - 1 do
 s := s + ' ' + ValueListEditor1.Strings.ValueFromIndex[i];
 end;

 sMemo1.Lines.Add(s);
end;


Попробуйте так.
var
 i, c: Integer;
 s: string;
begin
 s := '';

 c := ValueListEditor1.Strings.Count;
 if c > 0 then
 begin
 s := ValueListEditor1.Strings.ValueFromIndex[0];
 for i := 1 to c - 1 do
 s := s + ' ' + ValueListEditor1.Strings.ValueFromIndex[i];
 end;

 sMemo1.Lines.Add(s);
end;
Низкий поклон Вам и всем кто помог. Тема закрыта !