Медленный цикл делфи - Proxy-Base Community - Анонимность и безопасность в интернете.
Бесплатные прокси. Количество:
Прокси для пользователей форума (API). Количество:
Купить доступ к прокси-листам (API). Количество:
 



Информация по хайдам / репутации

(РЕКОМЕНДУЮ) №1 >>>DDos Атака<<|>>DDoS Service<<< ДДОС СЕРВИС<<|>>Заказать DDOS
Бесплатные прокси уже в Telegram
Все инфопродукты и приватная информация бесплатно
Старый 16.12.2012, 12:45   #1 (permalink)
HTTP
 
Регистрация: 16.12.2012
Сообщений: 4
Member ID: 33077

Репутация: 0
Репутация: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Топикстартер (автор темы) Вопрос Медленный цикл делфи

Есть программа, которая добавляет в конце строк, заданные значения, но есть проблема - при большом количестве строк в memo программа очень медленно их обрабатывает (3-4 строки в секунду). Как сделать что бы текст ко всем строкам добавлялся моментально?
Собственно, код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var p:Byte; i:Smallint; f:ShortString;
begin
i:=-1;
f:=edit1.Text;
   for p:=0 to Memo1.Lines.Count do
      begin
      i:=i+1;
      Memo1.Lines[i]:=Memo1.Lines[i]+f;
      end;
end;
Devastor вне форума   Ответить с цитированием
Старый 16.12.2012, 15:23   #2 (permalink)
Добрый доктор Хаус
 
Аватар для krasniy
 
Регистрация: 17.10.2009
Сообщений: 267
Member ID: 4595
ICQ 3374377

Репутация: 838
Репутация: 838
Сказал(а) спасибо: 100
Поблагодарили 370 раз(а) в 167 сообщениях
По умолчанию Re: Медленный цикл делфи

Devastor, дай угадаю. А кол-во строк больше 32767?

Во-первых, i определяй как Integer. Во-вторых, что за конструкция с дополнительным итератором? Что мешало сделать так: "
var p:Integer; f:ShortString;
begin
f:=edit1.Text;
for p:=0 to Memo1.Lines.Count do
begin
Memo1.Lines[p]:=Memo1.Lines[p]+f;
end;
end;
" ???????

А можно еще и так: Memo1.Lines[p]:=Concat(Memo1.Lines,f);
krasniy вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 16.12.2012, 17:05   #3 (permalink)
SOCKS4
 
Регистрация: 27.09.2011
Сообщений: 164
Member ID: 19312

Репутация: 119
Репутация: 119
Сказал(а) спасибо: 42
Поблагодарили 41 раз(а) в 34 сообщениях
По умолчанию Re: Медленный цикл делфи

А как же Lines.BeginUpdate + Lines.EndUpdate ?
madvet вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 16.12.2012, 17:19   #4 (permalink)
Добрый доктор Хаус
 
Аватар для krasniy
 
Регистрация: 17.10.2009
Сообщений: 267
Member ID: 4595
ICQ 3374377

Репутация: 838
Репутация: 838
Сказал(а) спасибо: 100
Поблагодарили 370 раз(а) в 167 сообщениях
По умолчанию Re: Медленный цикл делфи

madvet, я не дельфер, я пишу на С++, но почитав документацию и зная принципы программирования, сделал вот такой пример.
krasniy вне форума   Ответить с цитированием
Старый 16.12.2012, 17:56   #5 (permalink)
***VIP*** Reverser
Proxy-Base.Org Team
 
Аватар для staticspb
 
Регистрация: 07.11.2012
Адрес: http://gegechkori.ru
Сообщений: 138
Member ID: 32077
ICQ 900002
Skype static.spb

Репутация: 1191
Репутация: 1191
Сказал(а) спасибо: 90
Поблагодарили 397 раз(а) в 101 сообщениях
По умолчанию Re: Медленный цикл делфи

Как-то так, на коленке:

Код:
var
  i: Integer;
  f: ShortString;
begin
  f := Edit1.Text;
  Memo1.BeginUpdate;
  for i := 0 to Memo1.Lines.Count - 1 do
    begin
       Memo1.Lines[i] := Memo1.Lines[i] + f;
       Application.ProcessMessages; //чтобы окно не совсем "повисло"
    end;

  Memo1.EndUpdate;
end;
staticspb вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Ответ

Метки
delphi, memo, цикл

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Вкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл и Delphi 7 Gdasarhik Программирование 2 08.12.2011 21:16
пишу на делфи Vlad3d Услуги | Сервисы 9 18.12.2010 13:31
Сорци пинча(Делфи + асм) s1r1us Программирование 3 27.03.2010 16:15
внимание, вирус для делфи Flashback Программирование 1 13.08.2009 02:45




DDoS Protected




Мы в твиттере, Proxy-Base.Org Twitter

Proxy-Base Community - Анонимность и безопасность в интернете.
Наши партнеры: CRC Labs, SEO-Crack.Com, Garsuk.Com, SED Team, Skladchik.com, BSS Family

Powered by vBulletin® | Булка сделана в пекарне®
Copyright © 2000 - , Jelsoft Enterprises Ltd. Перевод: zCarot
Вся информация на сайте выложена исключительно в ознакомительных целях.