AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Thread pausieren lassen und aufwecken

Ein Thema von Quo · begonnen am 18. Feb 2008 · letzter Beitrag vom 19. Feb 2008
 
Quo

Registriert seit: 18. Feb 2008
6 Beiträge
 
#1

Thread pausieren lassen und aufwecken

  Alt 18. Feb 2008, 22:28
Hi Leute, helft mir bitte ...

folgendes, ich habe eine unendliche schleife in ein thread eingebaut,
diese schleife prüft eine Variable (hier checkbox1.checked:=true) wenn dise variable true ist, wird in meinem Tread eine Procedure aus eienem anderen Unit gestartet, bevor diese Pocedure startet, wird mein Thread pausiert (Thred.suspend).

Nun, wenn die Procedure durchgelaufen ist (checkbox1.checked:=false), will ich das mein Tread weiter läuft und das soll von alleine geschehen (ohne das ich irgendwas mache).

Danke!!!
Delphi-Quellcode:
unit Tread;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type TAnzeigeTread=class(TThread)
Sender: TObject;
constructor create(CreateSuspended : boolean); virtual;
protected
procedure execute; override;
procedure Doetwas;virtual; abstract;
{ Public-Deklarationen } 
end;

TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Button2: TButton;
Button4: TButton;
Edit3: TEdit;
CheckBox1: TCheckBox;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure etwas(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private

public
{ Public-Deklarationen } 
AnzeigeTread:TAnzeigetread;
end;
var
Form1: TForm1;
i:integer;
a:string;
b:boolean;
implementation

uses Unit2;



{$R *.dfm} 
constructor TAnzeigeTread.create(CreateSuspended : boolean);
begin
FreeOnTerminate := True;
inherited Create(CreateSuspended);


end;

procedure TAnzeigeTread.Execute;

begin
i:=0;
while(not Terminated)do
begin
if form1.CheckBox1.Checked then
form2.Button1Click(sender);
if b=true then

form1.Edit1.Text:=a;

Form1.etwas(Sender);
sleep(50);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
b:=true;
AnzeigeTread:= TAnzeigeTread.create(true);
AnzeigeTread.Resume;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
AnzeigeTread.Suspend;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
AnzeigeTread.resume;
end;


procedure TForm1.etwas(Sender:TObject);

begin
i:=i+1;
a:=inttostr(i)+'mda';

end;


procedure TForm1.Button3Click(Sender: TObject);
begin
b:=false;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
form2.show;
end;

end.
........

Delphi-Quellcode:
unit Unit2;

interface

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

type
TForm2 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen } 
public
{ Public-Deklarationen } 
end;

var
Form2: TForm2;
AnzeigeTread:TAnzeigetread;
implementation



{$R *.dfm} 

procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.AnzeigeTread.Suspend;

Form1.Edit3.Text:= 'ok';
Sleep(1000);
form1.CheckBox1.Checked:=false;
Form1.AnzeigeTread.Resume; // Wie kann ich mein thread weiterfortsetzen????
Form1.Edit3.Text:= 'weiter';
end;

end.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz