Einzelnen Beitrag anzeigen

raena

Registriert seit: 30. Dez 2007
124 Beiträge
 
#15

Re: Abbrechen einer Schleife mit Button

  Alt 15. Jul 2008, 10:20
Ja genau RavenIV und Sherlock, das ist das was ich mir vorstellen.
Geht prinzipiell auch mit Application.ProcesMessages, das Probelm ist jetzt nur noch, dass
wenn "abbrechen" order "stop" gedrückt wurde, die Schleife nicht mehr gestartet werden kann.

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    b_start: TButton;
    b_stop: TButton;
    Memo1: TMemo;
    procedure b_startClick(Sender: TObject);
    procedure ResetEscPressed;
    function EscPressed():Boolean;
    procedure b_stopClick(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  KnopfGedrueckt:boolean;

implementation

{$R *.dfm}

procedure TForm1.b_startClick(Sender: TObject);
var i:integer;

begin
  i:=0;
  resetescpressed;
  repeat
   memo1.Text:=inttostr(i);
   inc(i);
   sleep (10);
   Application.ProcessMessages;
   until EscPressed() or KnopfGedrueckt;
   end;


procedure TForm1.ResetEscPressed;
begin
  GetAsyncKeyState(VK_ESCAPE);
  GetAsyncKeyState(VK_PAUSE);
end;

procedure TForm1.b_stopClick(Sender: TObject);
begin
  KnopfGedrueckt := True;
end;

function TForm1.EscPressed():Boolean;
begin
  Result := ((GetAsyncKeyState(VK_ESCAPE) and $8001) <> 0) or
    ((GetAsyncKeyState(VK_PAUSE) and $8001) <> 0);
end;


end.
  Mit Zitat antworten Zitat