Форум: "Основная";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
ВнизНемедленное завершение процедуры Найти похожие ветки
← →
Alex-21 (2003-07-26 20:38) [0]Как завершить немедленно процедуру, недожидая окончания цикла, когда в этой процедуре идёт какой-то процесс типа for i:=0 to ... ?
← →
Anatoly Podgoretsky (2003-07-26 20:44) [1]exit, что переводится как выход
← →
Alex-21 (2003-07-26 20:53) [2]И где это пишется, внутри самой процедуры.
Если я нажму TButton "Закрыть окно", где происходит эта процедура, и она завершится?
← →
Anatoly Podgoretsky (2003-07-26 21:01) [3]Где тебе удобнее, ты же знаешь свое место откуда хочешь выйти
← →
Fenik (2003-07-26 21:08) [4]Немедленно завершить цикл - Break;
← →
Anatoly Podgoretsky (2003-07-26 22:37) [5]Break не пойдет, ему надо выход из процедуры.
← →
Fenik (2003-07-27 00:15) [6]2 Anatoly Podgoretsky © (26.07.03 22:37)
Читаю вопрос и вижу:
"Как завершить немедленно процедуру, недожидая окончания цикла, когда в этой процедуре идёт какой-то процесс типа for i:=0 to ... ?"
← →
Юрий Зотов (2003-07-27 10:46) [7]> Fenik © (27.07.03 00:15)
Тоже читаю вопрос и вижу:
"Как завершить немедленно процедуру ..."
Т.е. - не цикл, а всю процедуру.
← →
Anatoly Podgoretsky (2003-07-27 11:33) [8]А ты читай полностью "Как завершить немедленно процедуру," и тему тоже.
← →
Fenik (2003-07-27 12:20) [9]Думаю и то и другое ему будет полезно узнать..
← →
Anatoly Podgoretsky (2003-07-27 12:36) [10]Насчет полезности возражений нет, но я понимаю это как тонкий намек в сторону книг :-)
← →
default (2003-07-27 20:02) [11]Exit - это просто jmp на конец подпрограммы(обычно на ret)
Halt по-моему завершает вообще всё и его не рекомендуют использовать(Halt-ом спец-но не интересовался)
← →
cyberwolf (2003-07-27 21:24) [12]Break - прерывает выполнение цикла, переход на код после цикла
Continue - начинает новую итерацию цикла, переход на начало цикла
← →
Alex-21 (2003-07-28 21:29) [13]Пробовал halt, он завершает все процедуры и саму прогу.
А с Exit"ом не получается что-то.
Пишу так:
procedure Button1Click();
begin
for i:=0 to 100 do
ListView1.Items.Add(s);
Exit;
end;
procedure Button2Click();
begin
Close; {закрываем окно с ListView1}
end;
Почему-то невозможно завершить цикл и закрыть окно. Где я не так сделал?
← →
Serginio (2003-07-28 21:41) [14]В процедуре Button1Click(); должен присутствовать параметр Sender. Если ты хочешь его закрыть приведи к соответствующему типу и вызови Close или Free.
← →
Palladin (2003-07-28 21:44) [15]а exit в конце процедуры - это оригинально
← →
Silla (2003-07-28 22:45) [16]procedure Button1Click();
begin
for i:=0 to 100 do begin
ListView1.Items.Add(s);
if 1 = 50 then // например по проверке
Exit;
end;
end;
← →
Leshiy (2003-07-29 11:27) [17]Может что-то типа этого?
var stop:boolean
procedure Button1Click();
var i:integer;
begin
stop:=false;
for i:=0 to 100 do
begin
if stop then exit;
DoSomethink;
Application.ProcessMessages;
end;
end;
procedure Button2Click();
begin
stop:=true;
end;
← →
default (2003-07-29 17:19) [18]умом Россию не понять...
P.S. всё уж давно проехали
← →
Константин (2003-07-29 20:32) [19]
> умом Россию не понять...
> P.S. всё уж давно проехали
</>
Согласен...
Тока чё вы паритесь:
sendmessage(application.handle,wm_destroy,0,0)
и все проблемы;)
Ни тебе процедур ни циклов, ни программы:)))))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.016 c