![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
окно зависает [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; Будет притормаживать:)