Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Простой вопрос


Автор: XaleX 10.12.2003, 23:03
Прошу, ответьте мне на такой, возможно с какой то стороны глупый вопрос!
Как прервать выполнение процедуры на нажатие нопки!?
И чем лучше привязать к проге hlp, с множеством точек входа, подскажите пжлста!
Буду благодарен!


Автор: Vit 10.12.2003, 23:21
Код
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 Canceled:boolean; // нам нужна глобальная переменная

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
 var i:integer;
begin
 Canceled:=False;  // начало бесконечной процедуры
 Repeat   // бесконечный цикл, который надо прервать
   Caption:=inttostr(i);
   Application.ProcessMessages;
   if Canceled then break;  // прервать цикл если вторая кнопка была нажата
 Until False;
 showmessage('We are exit from procedure');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Canceled:=True; // команда для прерывания цикла
end;

end.



Цитата
И чем лучше привязать к проге hlp, с множеством точек входа, подскажите пжлста!
Буду благодарен!


Каждый компонент имеет свойство HelpContext, кроме того объект Application имеет методы работы с Help.

Автор: DonPager 12.12.2003, 11:11
этот способ хорошо подходит если идёт какойто процесс и его надо прервать ...
у Xalex`a же задача немного другая.....:
идёт процесс, вдруг в процессе его исполнения требуется ввести новые данные, появляется маленький диаложик ... и вот тут то и надо подождать пока юзверь не введёт цифирю...ежели делать repeat..until ето слишком много кушает,
а если преределывать конструкцию проги (нк так уж она написана sad.gif ) - это займёт слишком много времени...
может есть какой ещё способ?...

Автор: Vit 12.12.2003, 15:54
Ничего не понял... Идёт процесс, надо спросить - вызываешь диалог MyFormDialog.showmodal; программа стоит и ждёт пока не закроют эту модальную форму, какой такой repeat...Until? На фига он там нужен?

Автор: DonPager 14.12.2003, 14:31
всё конечно хорошо..., однако при шоумодале вылезает отдельное окошко, а нуно чтобы диаложик в тойже форме был...

З.Ы. Да, мы комсомольцы - сначала трудности создаём - а потом преодолеваем.... smile.gif

Автор: NiJazz 14.12.2003, 15:11
Vit, а можно exit?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)