Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

окно зависает [D6, XP]


funky ©   (2006-10-19 21:09:00) 

Привет мастера! Если не против, сначало код:

procedure TForm1.Button1Click(Sender: TObject);
label getnewtext;
var
ct:string;
begin
Button1.Enabled := False;
i := StrToInt(Edit1.Text);
instext := 0;
getnewtext:
assignfile(f,'config.ini');
ct := 'count='+IntToStr(i);

assignfile(CFile,'config.ini');
rewrite(CFile);
writeln(CFile,ct);
closefile(CFile);
sleep(2000);
Form1.Caption := 'Всего обработанно '+IntToStr(i)+' ôàéëîâ...';
inc(i);
proxyvalid := 1;
if instext = 0 then Gettextfile else Gettextfile_two;
if i = StrToInt(Edit2.Text) then else GoTo getnewtext;
end;


После нажатию на кнопку, программа начинает работать, работает отлично, но само окно программы "зависает", т.е. становится таким:
http://img98.imageshack.us/img98/1162/myprogvk4.jpg
Нельзя переместить, или нажать на X.
Подскажите пожалуйсто, как это исправить? Т.Е. Что бы во время работы программы, можно было нормально работать с формой? Спасибо.


funky   (2006-10-19 23:18:00) [1]

Gero ©   (19.10.06 23:16) [10]
А, ладно забей.
Спасибо что подсказал куда ф-цию впихивать %)


Gero   (2006-10-19 23:16:00) [2]

> [9] funky   (19.10.06 23:12)

Не виснет, а ждет пока пройдет две секунды.
А зачем тебе он тогда вобще нужен?


funky   (2006-10-19 23:12:00) [3]

Gero ©   (19.10.06 23:08) [8]
>Да, переписать код более эффективно.
Вместо GoTo, сделал repeat, намного лучше стало.

>А чем тебя Sleep не устраивает?
Ну так при ней виснет на 2 секунды.


Gero   (2006-10-19 23:08:00) [4]

> [7] funky   (19.10.06 22:49)


> есть ли какая либо альтернатива этой команде?

А чем тебя Sleep не устраивает?

> Вставил, форма стала отображатся, но слишком сиьлно прога
> тормозит, можно как-то убрать тормоза?

Да, переписать код более эффективно.


funky   (2006-10-19 22:49:00) [5]

MikePetrichenko ©   (19.10.06 22:23) [4]
Не нравется GoTo?

Чародей ©   (19.10.06 22:33) [5]
убрал нафиг %) есть ли какая либо альтернатива этой команде?

Gero ©   (19.10.06 22:36) [6]
Вставил, форма стала отображатся, но слишком сиьлно прога тормозит, можно как-то убрать тормоза?


Gero   (2006-10-19 22:36:00) [6]

> [0] funky   (19.10.06 21:09)

Вставлять в циклически повторяющуюся область кода. Твоего.


Чародей   (2006-10-19 22:33:00) [7]


> sleep(2000);

ты сам замораживаешь поток программы, замени на [1]


funky   (2006-10-19 22:23:00) [8]

Application.ProcessMessages; %)
Несработало, всё равно форма виснет =/


MikePetrichenko   (2006-10-19 22:23:00) [9]


> procedure TForm1.Button1Click(Sender: TObject);
> label getnewtext;
> var
> ct:string;
> begin
> Button1.Enabled := False;
> i := StrToInt(Edit1.Text);
> instext := 0;
> getnewtext:
> assignfile(f,'config.ini');
> ct := 'count='+IntToStr(i);
>
> assignfile(CFile,'config.ini');
> rewrite(CFile);
> writeln(CFile,ct);
> closefile(CFile);
> sleep(2000);
> Form1.Caption := 'Всего обработанно '+IntToStr(i)+' ôàéëîâ.
> ..';
> inc(i);
> proxyvalid := 1;
> if instext = 0 then Gettextfile else Gettextfile_two;
> if i = StrToInt(Edit2.Text) then else GoTo getnewtext;
> end;

Хотел было подсказать куда его вставить но ВОТ ЭТО убило. Рыдал
if i = StrToInt(Edit2.Text) then else GoTo getnewtext;


funky   (2006-10-19 22:20:00) [10]

RASkov   (19.10.06 21:53) [1]
М, а куда его вставлять? Попробовал в Project1.dpr
[Error] Unit1.pas(177): Undeclared identifier: 'ProcessMessges'


RASkov   (2006-10-19 21:53:00) [11]

Application.ProcessMessges; Будет притормаживать:)


Наверх

Титульная страница Поиск, карта сайта Написать письмо