Autor Beitrag
Xenar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45



BeitragVerfasst: Di 05.04.05 20:35 
Hallo,

habe folgendes vor:
Mit dem ButtonStart soll TestThread gestartet werden, der alle 3 Sekunden eine Message ausgibt, also der TestThread soll sich ständig wiederholen. Mit dem ButtonStop soll der thread pausieren, der dann wieder mit Buttonstart aktiviert werden könnte.
Kann mir da jemand weiterhelfen?

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
interface

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

type
    TMyThread = class(TThread)
  protected
    procedure Execute; override;
  end;

  TForm1 = class(TForm)
    ButtonStart: TButton;
    ButtonStop: TButton;
    Label1: TLabel;
    procedure ButtonStartClick(Sender: TObject);
    procedure ButtonStopClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public

  end;



var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TMyThread.Execute;
  begin
   try
    showmessage('thread läuft !!!');
    sleep(3000);
   except
     on e: exception do begin
     showmessage('Fehler im Thread');
     end;
   end;
  end;

procedure TForm1.ButtonStartClick(Sender: TObject);
begin
  TestThread.Resume;
end;

procedure TForm1.ButtonStopClick(Sender: TObject);
begin
  TestThread.Suspend;
end;

procedure TForm1.FormCreate(Sender: TObject);
var TestThread: TMyThread;
begin
  TestThread := TMyThread.Create(True);
end;

end.


Ciao Xenie

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Di 05.04.05 23:04 
Hi,

Ich würde das anders machen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
var
 Tid : Cardinal;


procedure TestThread;
begin
 while true do
  begin
   sleep(3000);
   showmessage('sdfsdf');
  end;
end;

procedure ThreadStarten;
begin
 CreateThread(0, 0, @TestThread, nil, 0, Tid);
end;

procedure ThreadStoppen;
begin
 exitThread(tid);
end;
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 06.04.05 13:11 
Und ich noch anderster: Suche im MSDN CREATETIMERQUEUETIMER ;)