Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Зависает Memo. Что делать? [D7, XP]


Miroving ©   (2007-08-12 18:47:00) 

В Memo добавляю в цикле строки:

for i := 0 to 100 do
   Memo1.Lines.Add('XXXXX');


Видимая часть Memo1 - строк 10, поэтому поставил вертикальную полосу прокрутки.

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

Иногда бывает, что виснет и при попытке добавления. Пичём, процесс висит от минуты до 5-ти, потом отпускает, но при попытке передать фокус Memo1 виснет снова и т.д.  Что это за ошибка и как её можно исправить?  Спасибо.


Leonid Troyanovsky   (2007-08-12 20:53:00) [1]


> Miroving   (12.08.07 20:48) [10]

> Забил я на этот Memo глючной, поставил StringGrid.

Memo не есть более глючный, чем StringGrid.
Правильней сказать: "непонятый".

--
Regards, LVT.


Miroving   (2007-08-12 20:48:00) [2]

Забил я на этот Memo глючной, поставил StringGrid. Всё работает отлично.
Всем спасибо.


Miroving   (2007-08-12 20:22:00) [3]

Кстати, если поставить

ReadOnly := false;
Enable := true;

то ошибка [2] остаётся.


Anatoly Podgoretsky   (2007-08-12 20:13:00) [4]

> Miroving  (12.08.2007 20:11:07)  [7]

Ничего плохого не вижу, а хорошее есть - пользователь может удалить лишнею информацию и все остальное работает.


Miroving   (2007-08-12 20:11:00) [5]


> Тебе не угодить.
> Почему бы не разрешить редактирование мемо, что в этом плохого.
>


Можно конечно, но оно преднозначено только для вывода информации. Логичнее и красивее запретить.


Anatoly Podgoretsky   (2007-08-12 20:07:00) [6]

Тебе не угодить.
Почему бы не разрешить редактирование мемо, что в этом плохого.


Miroving   (2007-08-12 20:06:00) [7]


> Memo1.Enabled := False

В этом случае нельзя скроллить :(


Leonid Troyanovsky   (2007-08-12 20:00:00) [8]


> Miroving   (12.08.07 19:26) [2]

> Как можно запретить устанавливать курсор в  Memo1 (именно
> не курсор мышки не должен ходить над областью, занимаемой
> Memo1, а мигающий курсор в Memo1)?

Memo1.Enabled := False

--
Regards, LVT.


Leonid Troyanovsky   (2007-08-12 19:51:00) [9]


> Miroving   (12.08.07 18:47)  

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

Отца русской демократии могут спасти контролы имеющие стиль *virtual,
f.e., TListBox - lbVirtual*, или даже обычный TDrawGrid.

Правда, логику надо слегка переосмыслить.

--
Regards, LVT.


Miroving   (2007-08-12 19:26:00) [10]


> BeginUpdate/EndUodate

Помогло, но не совсем. Скроллинг теперь отрабатывает нормально, но осталась другая проблема:
у меня у Memo1 стоит property readonly. И если устанавливаю мигающий курсор в поле Memo1 и пытаюсь им пройтись по записям (pgUp/pgDown), то как только курсор выходит из области видимости происходит зависание.

Как можно запретить устанавливать курсор в  Memo1 (именно не курсор мышки не должен ходить над областью, занимаемой Memo1, а мигающий курсор в Memo1)?


TUser   (2007-08-12 19:05:00) [11]

BeginUpdate/EndUodate


Наверх

Титульная страница Поиск, карта сайта Написать письмо