Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 11:34 03.06.24 
Компютри и Интернет
   >> Delphi
Всички теми Следваща тема *Кратък преглед

Тема freeze проблем  
Автор trump (непознат)
Публикувано22.05.05 11:56



Здравейте,
Имам следния проблем:
Докато се изпълнява някой цикъл, програмата "замръзва" и не обработва вход/изход.Как мога да го предотвратя?



Тема Re: freeze проблемнови [re: trump]  
Автор TRN (член)
Публикувано22.05.05 12:42



Сложи в цикъла Application.ProcessMessages



Тема Re: freeze проблемнови [re: TRN]  
Автор ИвKo (особняк)
Публикувано22.05.05 14:23



Абе аз като "на всяка манджа мерудия", ама ще ми простите може би...


Освен това препоръчително е, ако не искаш потребителя да ти затвори приложението, докато си в цикъла, и да се омажат нещата, да си инициализираш една глобална променлива, например FCanClose да бъде FALSE, и на събитието на формата OnCloseQuery да присвояваш CanClose:=FCanClose, а след цикъла, да правиш FCanClose:=True;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=FCanClose;
end;

Защото Application.ProcessMessages разрешава обработката на Windows съобщенията, и току виж, потребителя ти цъкнал някой бутон който не трябва.



Тема ПроцесМесидж, има тънкости, внимавай.нови [re: trump]  
Автор NikB (любопитен)
Публикувано22.05.05 14:53



Ползването на процеснесидж е удобно, но освен със затварянето на вормата, трябва да го съобразиш и с други процеси, които не трябва да са паралени (или не могат да са реентрантни).



Тема Много Ви благодаря!нови [re: trump]  
Автор trump (непознат)
Публикувано23.05.05 09:54



Много Ви благодаря!



Тема Re: freeze проблемнови [re: ИвKo]  
Автор Formal (незнаещ)
Публикувано23.05.05 21:38



Приложението не може да се затвори, докато не е приключило обработването на всички събития. Следователно, ако процедурата с цикъла е събитие, изпълняващо се в отговор на съобщение (напр. OnClick), потребителят _не_ може да затвори приложението, докато не приключи процедурата. Така че това с флага за CanClose е излишно.



Тема Re: freeze проблемнови [re: Formal]  
Автор ИвKo (особняк)
Публикувано24.05.05 08:26



Засрамен



Тема Re: freeze проблемнови [re: trump]  
АвторDark Dirk (Нерегистриран)
Публикувано28.05.05 17:43



Ами изнеси цикъла в отделен thread.
И може да изпращаш информация за това до къде е стигал този thread с работата си към главния thread на програмата.




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.