Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.18;
Скачать: CL | DM;

Вниз

Генератор   Найти похожие ветки 

 
Lamak   (2002-11-03 02:56) [0]

Помогите, пожалуйста, мастера.
Есть программа - генератор номеров (от 000001 до 999999).
Генерация начинается по нажатию на кнопку, при этом все номера заносятся в Memo. Позле запуска, кнопка зависает, программа работает, но выйти из неё можно только аварийно. Что делатЬ?


 
777 ©   (2002-11-03 03:05) [1]

Application.ProcessMessages делаешь?


 
Lamak   (2002-11-03 03:12) [2]

Да...все равно не закрывается.


 
777 ©   (2002-11-03 03:18) [3]

var br:boolean
.....
в цикле ставишь проверку
if br=true then break;

должно останавливаться.


 
Lamak   (2002-11-03 03:20) [4]

Теперь закрывается.
Но на время генерации приложение как бы зависает, с этим что делатЬ?


 
777 ©   (2002-11-03 03:23) [5]

Application.ProcessMessages в цикле стоит?


 
Lamak   (2002-11-03 03:25) [6]

Да.


 
777 ©   (2002-11-03 03:32) [7]

Давай код. так трудно сказать,
хотя если каждое число (их как я понял 999999?) заносится в отдельную строку мемо, то надо использовать что-то другое, например просто писать числа в файл...


 
Новенький в Делфи   (2002-11-03 13:17) [8]

помоему у Memo есть BeginUpdate и EndUpdate .. может это поможет?

Memo1.BeginUpdate; (или Memo1.text.beginUpdate точно не момню)
For i:=1 to x do
begin
Application.processMessage;
...
end;
Memo1.EndUpdate;


 
Yegor Derevenets   (2002-11-03 15:12) [9]

Не лучше ли будет чуть-чуть помучаться с TThread? Там проверять Terminated и Suspended. Если что-нить тру, то закругляться. Только надо аккуратно будет написать это. Чтобы всяких Access Violation не вылетало. :-)
Кстати, ProcessMessage мне как-то тоже использовать не по душе. Не люблю кривостей. :-)


 
TTCustomDelphiMaster ©   (2002-11-03 15:30) [10]

Скорее всего алгоритм генерации номеров не самый оптимальный.


 
Cheester[X3] ©   (2002-11-03 16:42) [11]

Ну, без кода так не скажешь.


 
Lamak ©   (2002-11-06 02:16) [12]

procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,d,e,f:integer;
begin
if Button1.Caption="


 
Alex4444444444   (2002-11-06 02:37) [13]


...
Application.ProcessMessages;
if Terminated then Exit;
end


I knopka, kotoraya by vystavlyala Terminated := True;
(ili v Form.OnCloseQuery).

Hotya, konechno, pisat" stol"ko v TMemo---eto ne bystro.


 
KSergey ©   (2002-11-06 06:59) [14]

А что вы хотели получит? Чтобы останавливыалось? А с чего оно будет останавливаться по-вашему?! Где остановка-то циклов?
И еще. А memo выдержит такое кол-во строк? и вообще- какой в том смысл - запихнуть столько строк в memo? Это же кошмар!


 
murzikN   (2002-11-06 09:46) [15]

Кстати, MEMO не держит больше 64К


 
JohnnyJ ©   (2002-11-06 10:28) [16]


> murzikN (06.11.02 09:46)

Кстати, MEMO не держит больше 64К


под XP - держит...

2Lamak

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
if Button1.Caption = "Start" then
begin
Button1.Caption := "Stop";
Terminated := False;
for i:= 1 to 999999 do
begin
Memo1.Lines.Add(StringOfChar("0", 6 - Length(IntToStr(i))) + IntToStr(i));
Application.ProcessMessages;
if Terminated then
break;
end;
end
else
begin
Button1.Caption := "Start";
Terminated := True;
end;
end;

Кстати, а чем обусловлена необходимость подобным образом тиранить бедный контрол?



Страницы: 1 вся ветка

Текущий архив: 2002.11.18;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.018 c
14-59365
V.exeR
2002-10-28 06:55
2002.11.18
Forum Reader


14-59437
Igorek
2002-10-31 19:21
2002.11.18
Пробег мышки


6-59300
Aldor
2002-09-20 11:56
2002.11.18
А можно ли узнать имя компа в сети?


14-59439
Yuraz
2002-10-28 20:53
2002.11.18
Программа для изготовления индексной страницы локального форума


6-59323
ukota
2002-08-31 16:38
2002.11.18
Как определить тип сервера(iis,Apache,FreeBSD...) по его IP