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

Вниз

Тормозит добавление текста в Memo   Найти похожие ветки 

 
AlexeyT ©   (2006-08-29 03:29) [0]

Возникла проблемка: тормозит добавление в Memo текста, когда размер строки превышает где-то мегабайт. Добавляю так:
Memo.Lines.Add(s);
или так
Memo.Lines.Text:= s;
//Length(s)=N*1024*1024

Можно загрузить текст в мемо быстро? Может, предварительно преобразовать строку в StringList и передавать в мемо его? Может, лучше пользоваться не мемо, а, скажем, RichEdit, если у него такой проблемы нет?


 
Германн ©   (2006-08-29 04:05) [1]


> AlexeyT ©   (29.08.06 03:29)
>
> Возникла проблемка: тормозит добавление в Memo текста, когда
> размер строки превышает где-то мегабайт. Добавляю так

Да как ты не добавляй! Результат всё-равно тот же. Тормоза!
Вот только сначала подумай - а нужно ли пользователю иметь в Memo столько "мегабайт!", если вышеуказанный может реально видеть только несколько десятков строк!


 
Ketmar ©   (2006-08-29 09:43) [2]

> [0] AlexeyT ©   (29.08.06 03:29)
может, лучше не грузить в memo мегабайты? memo -- это "памятка". где это видано -- памятка на мегабайты? %-)
пихай лучше в RichEdit. а ещё лучше -- реши: точно ли нужно там столько текста?


 
Desdechado ©   (2006-08-29 12:28) [3]

LoadFromFile ?


 
Ганна Юхимівна   (2006-08-29 12:30) [4]

Может автор ветки поделиться гениальным замыслом - ЗАЧЕМ ЕМУ ЭТО НУЖНО ?


 
PSPF2003 ©   (2006-08-29 12:48) [5]

Это коммерческая тайна… :)


 
McLaud   (2006-08-29 15:19) [6]

Попробуй следующий вариант:
procedure WriteToMemo(Str: string);
var
 Stream: TStream;
begin
Stream := TMemoryStream.Create;
try
 Stream.Read(PChar(Str), Length(Str));
 Memo1.LoadFromStream(Stream);
finally
 Stream.Free;
end
end;

Хотя если честно, БЫСТРО оно работать не будет НИКОГДА!!!


 
Dmitrij_K   (2006-08-29 15:23) [7]

Еще вариант
Memo1.Lines.BeginUpdate;
Memo1.Lines.Add(String);
Memo1.Lines.Add(String);
Memo1.Lines.Add(String);
...
Memo1.Lines.EndUpdate;


 
Anatoly Podgoretsky ©   (2006-08-29 15:38) [8]

Dmitrij_K   (29.08.06 15:23) [7]
Вот это верный путь к тормозам.
Memo.Text := S;


 
AlexeyT ©   (2006-08-29 20:51) [9]


> Может автор ветки поделиться гениальным замыслом - ЗАЧЕМ
> ЕМУ ЭТО НУЖНО ?


Гениальный замысел прост. Это работа плагина к Тотал Коммандеру "OpenOffice.org Viewer". Желающие могу скачать со страницы
http://wincmd.ru/plugring/OOSimpleViewer.html

Для показа текста там стоит мемо...


> Хотя если честно, БЫСТРО оно работать не будет НИКОГДА!!
> !


Похоже на то.
Наверное, лучше попробовать RichEdit.


 
PSPF2003 ©   (2006-08-29 20:56) [10]

Кстати автор этого блокнота добился очень высокой скорости загрузки, поинтересуйся у него может поделится секретом.
http://www.progland.org/


 
DrPass ©   (2006-08-29 21:45) [11]


> тормозит добавление в Memo текста, когда размер строки превышает
> где-то мегабайт

В большинстве версий Windows (по-моему, во всех, кроме ХР/2003) там вообще ограничение на 64К



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

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

Наверх




Память: 0.49 MB
Время: 0.033 c
2-1156932952
XTD
2006-08-30 14:15
2006.09.17
Не получается поменять парам. регистра REG_SZ. (TRegistry)


3-1152797535
samalex
2006-07-13 17:32
2006.09.17
не работает функция upper


6-1145851434
Ezorcist
2006-04-24 08:03
2006.09.17
OnClientRead у TServerSocket


15-1156254291
ArtemESC
2006-08-22 17:44
2006.09.17
Сколько на дискете дорожек, и сколько в дорожках секторов?


2-1156333098
rr
2006-08-23 15:38
2006.09.17
Как построчно прочитать файл