Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];

Вниз

Как остановить ?   Найти похожие ветки 

 
Lego   (2002-04-11 02:50) [0]

Сразу приведу пример чтоб понятней было...
unit Unit1;

interface

uses
Windows, SysUtils, Classes, Forms, Controls, StdCtrls;



type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
b:boolean;

end;

var
Form1: TForm1;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=0 to 100000 do
if not b then
label1.Caption := IntToStr(i) else exit;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if not b then b:=true else
b:=false;
end;

end.


при нажатии на Button1 запускается счетчик, при нажатии на Button2 он в теории должен остановится... но этого непроисходит... подскажите как можно прервать программу в такум случае?


 
Ra   (2002-04-11 03:25) [1]

вставить в цикл вызов Application.ProcessMessage


 
judge_   (2002-04-11 05:58) [2]

А ты чего хотел - у тебя же всё в одном потоке
программа по нажатию button1 входит в Button1Click и там крутиться в цикле - она не обрабатывает никакие события пока не выдет из процедуры и не вернётся к "главному циклу программы" где события и отлавливаются

можешь в момент выполнения цикла поместить поверх своего окна другое, а потом убрать - твоё окно не будет отрисовываться пока не закончиться цикл в Button1Click

Изучай потоки (TSread)


 
Walker   (2002-04-11 06:48) [3]

какие потоки???

просто в цикле надо поставить Application.ProcessMessages (чтоб обработалось сообщение о клике мышкой по кнопке)



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

Форум: "Основная";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.009 c
1-69916
Val
2002-04-09 17:24
2002.04.22
inherited;


14-70017
Sergo
2002-03-14 12:28
2002.04.22
Тема про вирус!!!


3-69687
KonuhovSegey
2002-03-10 18:41
2002.04.22
Исключения в Interbase


6-69943
Brand
2002-01-28 21:16
2002.04.22
Непонятный момент с NMHTTP1.Post под WinXP


7-70036
__Dima
2001-10-24 12:30
2002.04.22
Защита программы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский