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

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

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2011, 15:54   #1
Armind
 
Регистрация: 13.12.2010
Сообщений: 5
По умолчанию Проблема с очисткой Memo.

Здравствуйте.
Мне необходимо много раз отображать в memo мой динамический список. После изменения списка, соответственно отображаться в мемо он будет по другому. Очищаю мемо так:
Код:
  memo1.Clear;
После этого, когда снова начинаю его заполнять отображается только первая строка. Проблема именно в мемо, делая трассировку, вижу, что циклом по сути печатаются все строки

PS: поиском пользовался. Подобного не нашёл
Armind вне форума Ответить с цитированием
Старый 16.10.2011, 17:07   #2
Dush
Форумчанин
 
Регистрация: 29.09.2011
Сообщений: 116
По умолчанию

попробуйте
Код:
memo1.lines.clear;
Dush вне форума Ответить с цитированием
Старый 16.10.2011, 17:20   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Dush, не имеет значения, что вызывать memo.clear или memo.lines.clear т.к. первый вызывает второе внутри себяLines является обьектом контейнера Memo.

Тс покажите как выводите массив построчно
Человек_Борща вне форума Ответить с цитированием
Старый 16.10.2011, 17:41   #4
Armind
 
Регистрация: 13.12.2010
Сообщений: 5
По умолчанию

Код:
var
  i:integer;
  elem:tukaz;
begin
  elem:=first;
  i:=-1;//так как нумерация в мемо идёт с нуля то присваиваю -1
  while elem<>nil do
    begin
      inc(i);
      memo1.Lines[i]:=inttostr(elem^.nombilet)+' '+elem^.FIO+' '+elem^.adress;
      elem:=elem^.next;
    end;
end;
Armind вне форума Ответить с цитированием
Старый 16.10.2011, 17:44   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

хаххаха
Lines - это обьект TStrings(строковой массив). У него, как минимум, есть метод Add или Insert, но первый лучше.

пример:
Код:
for i:=0 to 100 do
begin
memo1.lines.add(IntToStr(i));
end;
Счётчик там ненужен вообще.
Им по умолчанию должен быть обьект условия.
У вас это:
Код:
elem:=elem^.next;
По этому ваш код должен быть таким:
Код:
var
  i:integer;
  elem:tukaz;
begin
  elem:=first;
  while elem<>nil do
    begin
      memo1.Lines.add(inttostr(elem^.nombilet)+' '+elem^.FIO+' '+elem^.adress);
      elem:=elem^.next;
    end;
end;

Последний раз редактировалось Человек_Борща; 16.10.2011 в 17:46.
Человек_Борща вне форума Ответить с цитированием
Старый 16.10.2011, 17:50   #6
Armind
 
Регистрация: 13.12.2010
Сообщений: 5
По умолчанию

Спасибо большое.
Armind вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
c++ - что-то не то с очисткой буфера kukumumu Помощь студентам 4 17.09.2011 21:51
Проблема с Memo Zakharyan Общие вопросы Delphi 10 05.08.2011 13:29
проблема с memo D_E_N Общие вопросы Delphi 2 07.01.2010 22:29
проблема с Memo KlErik Компоненты Delphi 9 27.07.2008 15:57
Проблема с очисткой DBF Mastela БД в Delphi 7 03.06.2007 23:21