Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.02;
Скачать: CL | DM;

Вниз

Зависает Memo. Что делать?   Найти похожие ветки 

 
Miroving   (2007-08-12 18:47) [0]

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

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


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

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

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


 
TUser ©   (2007-08-12 19:05) [1]

BeginUpdate/EndUodate


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


> BeginUpdate/EndUodate

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

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


 
Leonid Troyanovsky ©   (2007-08-12 19:51) [3]


> Miroving   (12.08.07 18:47)  

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

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

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

--
Regards, LVT.


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


> Miroving   (12.08.07 19:26) [2]

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

Memo1.Enabled := False

--
Regards, LVT.


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


> Memo1.Enabled := False

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


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

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


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


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


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


 
Anatoly Podgoretsky ©   (2007-08-12 20:13) [8]

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

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


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

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

ReadOnly := false;
Enable := true;

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


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

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


 
Leonid Troyanovsky ©   (2007-08-12 20:53) [11]


> Miroving   (12.08.07 20:48) [10]

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

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

--
Regards, LVT.



Страницы: 1 вся ветка

Текущий архив: 2007.09.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
4-1173028061
GrayFace
2007-03-04 20:07
2007.09.02
Access Violation в shell32.dll при вызове IFolderView.Items


2-1186750317
alles
2007-08-10 16:51
2007.09.02
Функция DirectoryExists работает долго


3-1178619745
pavel_guzhanov
2007-05-08 14:22
2007.09.02
Ошибка при вставке записи и коммит транзакции


2-1186581369
Constantin
2007-08-08 17:56
2007.09.02
Double


15-1186089042
Модуль
2007-08-03 01:10
2007.09.02
Как отловить нажатия на кнопки вверх, вниз, на панели?