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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2016, 14:15   #11
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Цитата:
Сообщение от diomed16 Посмотреть сообщение
Да вроде не обращаюсь, в цикле ведь только к строке s обращение идёт. А можно как-нибудь отдельный поток выделить? Или это сложная штука?
Извиняюсь. Недоглядел.
FaTaL вне форума Ответить с цитированием
Старый 03.08.2016, 09:07   #12
diomed16
Пользователь
 
Регистрация: 27.09.2012
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
что-то Вы не договариваете или вводите нас в заблуждение...

я сейчас создал проект.
кинул на форму Memo и кнопку.
на кнопку назначил код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var s : string;
 i, pass, MaxLen : integer;
begin
pass:=10000;
SetLength(s,pass+1);
for i := 1 to pass do
  s[i]:=chr(33+random(92));
Memo1.Text:=Copy(s,1,pass);
end;
выполняется меньше секунды.

Что Вы делаете не так? Или у Вас компьютер старенький и дохленький?
Не так я делал то, что s:=s+.... делал, вместо s[i]. А что не договорил, так это то, что я гораздо больше 10000 ставил. Миллион, десять миллионов...
diomed16 вне форума Ответить с цитированием
Старый 03.08.2016, 10:38   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Миллион, десять миллионов...
ну, во-первых, в цикле заполнения делайте периодически (ну, например, каждые 2000 символов) вызов Application.ProcessMessages();
Это позволит производить обработку оконных сообщений и программа перестанет "висеть".

во-вторых, нужно кинуть на форму прогресс-бар и показывать процесс выполнения.

в-третьих, нужно полностью исключить из процесса генерации визуальные компоненты.
Для чего Вам мусор в Memo? Тем более миллионы, десятки миллионов символов.
Это я уже молчу про абсолютно неясную (мне) конечную цель всех этих манипуляций...

успехов!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как осуществить более быстрое выполнение (строки) Asya7 Общие вопросы C/C++ 1 12.06.2016 21:52
DataGridView не хочет добавлять значения более чем в 3 строки Konstantin1706 Windows Forms 0 08.12.2013 15:13
Быстрое заполнение таблицы CrySTaL Microsoft Office Word 6 24.01.2013 14:03
Добавление более одной строки в таблицу include SQL, базы данных 2 02.05.2011 19:55
Caption на Button в две строки и более jziiiiiii Общие вопросы Delphi 15 21.02.2008 17:15