ソス@ソスソスソスソスソスsソスフゑソスソスソスネゑソスソス判定すソスソスノは?
|
ソスEC/C++
ソスEDelphi
ソスEVisual BasicソスソスソスSソスソス
ソス@(VB2-VB6ソスソス.NETソスソスソスp)
ソスEVisual Basic(VB2-VB6)
ソスEVisual Basic .NET
ソスEVisual C++
ソスEpapy's softwarelibrary
ソス^ソスCソス}ソス[ソスナ茨ソス闔橸ソスヤゑソスソスニゑソス
ソスoソスbソスNソスOソスソスソスEソスソスソスhソスナ擾ソスソスソスソスソスソスソスソス驍スソス゚ゑソス
ソスXソスソスソスbソスhソスナ擾ソスソスソスソスソスsソスソスソストゑソスソスワゑソスソスB
ソスOソスソスフ擾ソスソスソスソスソスソスIソスソスソスソスソストゑソスソスネゑソスソス鼾ソスノゑソス
ソスソスソスソスソスソスXソスLソスbソスvソスソスソスソス謔、ソスノゑソスソスソスソスソスソスフでゑソスソスソス
ソスヌゑソスソスソスソスソスホよいソスフでゑソスソス蛯、ソスソス?
ソスCソスソスソス[ソスWソスIソスノは以会ソスソスフようソスノなゑソスフでゑソスソスソスソスEソスEソスE
var
ソス@MyThread: TMyThread
procedure TFormMain.Timer(Sender: TObject);
begin
ソス@ifソス@MyThread = Nil then MyThread := TMyThread.Create;
end;
procedure Terminate(Sender: TObject);
begin
ソス@Self.Free;
ソス@Self := Nil
end;
ソスソスソスソスソスソスヘ、ソスtソスソスソス[ソスソスソスソストゑソスソス驍ゥソスヌゑソスソスソスソスソス`ソスFソスbソスNソスソスソスソス
ソスヨ撰ソスソスネどゑソスソスソスソスソスホよいソスフでゑソスソスソスソスEソスEソスE
ソスCソスソスソス[ソスWソスIソスノは以会ソスソスフようソスネ・ソスEソスE
if CheckFree(MyThread) then begin
ソス@MyThread := TMyThread.Create;
end;
ソスXソスソスソスbソスhソスソスソスIソスソスソスソスソスソスソス OnTerminate ソスCソスxソスソスソスgソスソスソスソスソスソスソスソスソスソスフで、
ソスソスソスソスナ会ソスソスニゑソスソスネゑソスニ思ソスソスソスフでゑソスソスソスソスc
> Self := Nil
ソスソスソスソスネゑソスソスソス
MyThread := nil;
ソスニゑソスソスソスソス
if Assigned(MyThread) then begin
ソスナ費ソスソスソスナゑソスソスソスフでは?
ソスPソスツのイソスソスソスXソス^ソスソスソスXソスソスソスソスソスソスソスンゑソスソスソスソスソスソスソスソスネゑソスソスフでゑソスソスソスヒ。
ソスト出ソスソスソスソスソスナ費ソスソス閧オソスネゑソスソスナ、Singletonソスpソス^ソス[ソスソスソスナ呼出ソスソスソスソスナ管暦ソスソスソスソスソスソストゑソス
ソスヌゑソスソスナゑソスソスソスソスHソス@ソス^ソスCソス‾ソスソスソスOソスフ厄ソスソスニゑソスソスlソスソスソスソスニゑソスソスフ包ソスソスソスソスAソスソスソスSソスソスソスニ思ソスソスソスワゑソスソスB
ソスソスjソスXソスソスソスbソスhソスソス
unit Unit2;
interface
uses
Classes, SysUtils, Windows;
type
TMyThread = class(TThread)
private
{ Private ソス骭セ }
FCnt: Integer;
procedure UpdateCaption;
protected
{ protected ソス骭セ }
procedure Execute; override;
public
{ Public ソス骭セ }
class function GetInstance(reateSuspended: Boolean): TMyThread;
constructor Create(reateSuspended: Boolean);
destructor Destroy; override;
end;
implementation
uses
Unit1;
var
Singleton: TMyThread;
{ MyThread }
procedure TMyThread.Execute;
begin
{ ToDo : ソスXソスソスソスbソスhソスニゑソスソスト趣ソスソスsソスソスソスソスソスソスソスRソス[ソスhソスソスソスソスソスソスノ記ソスq }
while not Terminated do
begin
Synchronize(UpdateCaption);
Sleep(100);
end;
Free;
end;
procedure TMyThread.UpdateCaption;
begin
Form1.Caption := IntToStr(FCnt);
inc(FCnt);
end;
class function TMyThread.GetInstance(reateSuspended: Boolean): TMyThread;
begin
// ソスCソスソスソスXソス^ソスソスソスXソスソスソスノ1ソスツにゑソスソスソスB
if not Assigned(Singleton) then
begin
Singleton := TMyThread.Create(reateSuspended);
end;
Result := Singleton;
end;
constructor TMyThread.Create(reateSuspended: Boolean);
begin
inherited Create(reateSuspended);
FCnt := 0;
end;
destructor TMyThread.Destroy;
begin
Singleton := nil;
inherited;
end;
end.
ソスト出ソスソスソスソス
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, StdCtrls, Unit2;
type
TForm1 = class(TForm)
btnStart: TButton;
btnEnd: TButton;
procedure btnStartClick(Sender: TObject);
procedure btnEndClick(Sender: TObject);
private
{ Private ソス骭セ }
FMyThread: TMyThread;
public
{ Public ソス骭セ }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.btnStartClick(Sender: TObject);
begin
FMyThread := TMyThread.GetInstance(False);
end;
procedure TForm1.btnEndClick(Sender: TObject);
begin
FMyThread.Terminate;
end;
end.