Главная страница
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
1-59188
AlexT1000
2002-11-09 15:48
2002.11.18
Как установить свою ширину выпадающего списка в ComboBox?


1-59129
appp
2002-11-08 13:10
2002.11.18
ListView


7-59458
antonioxxx
2002-09-16 23:21
2002.11.18
Работа с датой


1-59187
Кен
2002-11-08 04:14
2002.11.18
Как настроить RichEdit, чтобы он выглядел как Label ? Чтобы нельз


14-59414
KSergey
2002-10-31 09:08
2002.11.18
Я возмущен!