Форум: "Основная";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];
ВнизГенератор Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.022 c