Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2012, 14:11   #1
qadhhj
Пользователь
 
Регистрация: 03.03.2012
Сообщений: 11
По умолчанию вывести строки из массива в memo

Не получается вывести несколько строк в memo, читает только первую строку. Пробовал так -
Код:
memo1.lines[0]:=massiveVopros[i].VoprosString1;
memo1.lines[1]:=massiveVopros[i].VoprosString2;
memo1.lines[2]:=massiveVopros[i].VoprosString3;
memo1.lines[3]:=massiveVopros[i].VoprosString4;
memo1.lines[4]:=massiveVopros[i].VoprosString5;
memo1.lines[5]:=massiveVopros[i].VoprosString6;
memo1.lines[6]:=massiveVopros[i].VoprosString7;
memo1.lines[7]:=massiveVopros[i].VoprosString8;
memo1.lines[8]:=massiveVopros[i].VoprosString9;
qadhhj вне форума Ответить с цитированием
Старый 24.03.2012, 14:46   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Так можно, если все элементы списка с 0 по 8 уже существуют, и то с мемо этого делать не стоит.
Есть разные методы добавление в strings
Используйте
Memo1.Lines.Add('текст');
vovk вне форума Ответить с цитированием
Старый 24.03.2012, 14:46   #3
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

дубль
.... чтото с с доступом к форуму, половина пингов теряется, и сообщения дублируются

Последний раз редактировалось vovk; 24.03.2012 в 15:08.
vovk вне форума Ответить с цитированием
Старый 24.03.2012, 15:01   #4
qadhhj
Пользователь
 
Регистрация: 03.03.2012
Сообщений: 11
По умолчанию

У меня массив считывает строки с текстового файла, в котором и вопросы и ответы
Код:
memo1.lines[0]:=massiveVopros[i].VoprosString1;
memo1.lines[1]:=massiveVopros[i].VoprosString2;
memo1.lines[2]:=massiveVopros[i].VoprosString3;
memo1.lines[3]:=massiveVopros[i].VoprosString4;
memo1.lines[4]:=massiveVopros[i].VoprosString5;
memo1.lines[5]:=massiveVopros[i].VoprosString6;
memo1.lines[6]:=massiveVopros[i].VoprosString7;
memo1.lines[7]:=massiveVopros[i].VoprosString8;
memo1.lines[8]:=massiveVopros[i].VoprosString9;
smemo2.Text:=massiveVopros[i].VariantOtveta1;
smemo3.Text:=massiveVopros[i].VariantOtveta2;
smemo4.Text:=massiveVopros[i].VariantOtveta3;
smemo5.Text:=massiveVopros[i].VariantOtveta4;
Элементы уже существуют, если например на кнопку повесить -
Код:
label1.caption:=massiveVopros[i].VoprosString8;
То он выведет 8 строку вопроса, а вот Memo нет
qadhhj вне форума Ответить с цитированием
Старый 24.03.2012, 15:07   #5
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

навскидку:
Код:
type
  RVopros = record
   VoprosString: array[0..7] of string;
  end;

procedure TForm1.AddVopros(const Vopros: RVopros);
var
  i: Integer;
begin
  mmo1.Lines.BeginUpdate;
  try
    mmo1.Lines.Clear;
    for i := Low(Vopros.VoprosString) to High(Vopros.VoprosString) do
       mmo1.Lines.Add(Vopros.VoprosString[i]);
  finally
    mmo1.Lines.EndUpdate;
  end;
end;
замечания по подходу:
1) "явная индексация".... замените на массив VoprosString
2) весьма не логично хранить строки вопросов явно.... лучше 1 строку хранить, а ВНУТРИ разделять текст на строки символами #13#10
3) доп. к п.2.... имхо, вы сами усложнили задачу, пытаясь написать попроще
GreenWizard вне форума Ответить с цитированием
Старый 24.03.2012, 15:12   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

я говорил про элементы Tmemo
у вас существует элемент
memo1.lines[5] на момент добавление в него текста?
Чтото мне подсказывает что нет, не существует..
Используйте
Код:
Memo1.Lines.cear;//очищаем список
Memo1.Lines.Add(massiveVopros[i].VoprosString1);//добавляем строку
Memo1.Lines.Add(massiveVopros[i].VoprosString2);//добавляем строку
/////и тд
vovk вне форума Ответить с цитированием
Старый 24.03.2012, 15:35   #7
qadhhj
Пользователь
 
Регистрация: 03.03.2012
Сообщений: 11
По умолчанию

Да, не существуют, я не так вас понял. Сейчас все работает, спасибо!
qadhhj вне форума Ответить с цитированием
Старый 24.03.2012, 15:43   #8
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

на самый крайний случай уже:
Код:
procedure SetMemoLine(const mmo1: TMemo; const Line: Integer; const Value1: string);
begin
  while mmo1.Lines.Count <= Line do
    mmo1.Lines.Add('');

  mmo1.Lines.Strings[Line] := Value1;
end;
и где-то дальше:
Код:
SetMemoLine(Memo1, 5, 'Это строка №5');
GreenWizard вне форума Ответить с цитированием
Старый 24.03.2012, 16:11   #9
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

2GreenWizard
Вы всё правильно пишите, вот только мне кажется
ТС на данный момент не совсем понимает то, что вы хотите сказать, может через пару прочитанных книг...
Возможно, и скорее всего он использует то, что выучил на данный момент. Потом изучив материал дальше будет глядеть на свой код, и умилятся))
vovk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сдвиг элементов массива на 1 влево. Вывести матрицу в Memo Abrokadawr Помощь студентам 3 04.11.2011 23:13
Вывести содержимое IE в Memo Kristian Общие вопросы Delphi 12 22.09.2011 01:37
Паскаль, вывести строки массива, поочередно, с лево на право, справа на лево Amid1990 Помощь студентам 2 15.11.2010 13:00
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
Как из Memo вывести строки в txt файл в конец там существующих Saili Компоненты Delphi 8 16.12.2006 11:23