设计器
优化
This commit is contained in:
@@ -4699,6 +4699,63 @@ type TThreadWorker =class(TCustomThreadworker)
|
||||
begin
|
||||
return CheckTslCode(FScript,err);
|
||||
end
|
||||
end
|
||||
type tworkerctl =class(tcomponent) //工作线程封装
|
||||
function create(AOwner);
|
||||
begin
|
||||
inherited;
|
||||
end
|
||||
function terminate();
|
||||
begin
|
||||
if fworker then fworker.terminate();
|
||||
fworker := nil;
|
||||
end
|
||||
function start();
|
||||
begin
|
||||
if csDesigning in ComponentState then return 0;
|
||||
if fworker then return true;
|
||||
if ifstring(FScript) and FScript then
|
||||
begin
|
||||
fworker := new TThreadWorker(FScript,nil,nil);
|
||||
fworker.componet := self(true);
|
||||
fworker.OnMessage := FOnMessage;
|
||||
fworker.onerror := FOnError;
|
||||
end
|
||||
end
|
||||
function PostMessage(d);
|
||||
begin
|
||||
if fworker then return fworker.PostMessage(d);
|
||||
end
|
||||
function isstarted();
|
||||
begin
|
||||
return fworker?true:false;
|
||||
end
|
||||
published
|
||||
property script:text read FScript write Setscript;
|
||||
property OnMessage:eventhandler read fOnMessage write setOnMessage;
|
||||
property onerror:eventhandler read FOnError write setOnError;
|
||||
private
|
||||
fworker;
|
||||
FScript;
|
||||
[weakref]FOnError;
|
||||
[weakref]FOnMessage;
|
||||
function setOnMessage(f);
|
||||
begin
|
||||
fOnMessage := f;
|
||||
if fworker then fworker.OnMessage := f;
|
||||
end
|
||||
function setOnError(f);
|
||||
begin
|
||||
FOnError := f;
|
||||
if fworker then fworker.FOnError := f;
|
||||
end
|
||||
function Setscript(s);
|
||||
begin
|
||||
if s <> FScript and ifstring(s) and s then
|
||||
begin
|
||||
FScript := s;
|
||||
end
|
||||
end
|
||||
end
|
||||
//注册表操作类
|
||||
type TRegKey = class
|
||||
|
||||
@@ -4044,6 +4044,7 @@ type TSynCustomMemo = class(TCustomMemo)
|
||||
y := (CaretY-GetYpos())*GetYScrollDelta();
|
||||
x := (CaretX-GetXpos())*GetXScrollDelta();
|
||||
end
|
||||
published
|
||||
property Highlighter:thighlighter read FHighlighter write SetHighlighter; //语法高亮
|
||||
property Completion read FCompletion write SetCompletion; //自动完成
|
||||
property TabChar read FTabChar write SetTabChar;
|
||||
|
||||
@@ -102,7 +102,6 @@ type TCustomThreadworker = class()
|
||||
try
|
||||
oh := o.handle;
|
||||
except
|
||||
echo ">>>>>>>>>>>>>";
|
||||
DeleteWorker(i);
|
||||
uideleteworkerdata(oh); //删除数据
|
||||
end
|
||||
@@ -145,6 +144,7 @@ type TCustomThreadworker = class()
|
||||
end
|
||||
inherited;
|
||||
end
|
||||
property componet read getcomponet write setcomponet;
|
||||
property OnMessage read GetOnMessage write SetOnMessage;
|
||||
property OnError read GetOnError write SetOnError;
|
||||
property OnStart read GetOnStart Write SetOnStart;
|
||||
@@ -214,6 +214,14 @@ type TCustomThreadworker = class()
|
||||
[weakref]static FThreaders;
|
||||
FScript; //脚本
|
||||
FThreader;//host对象
|
||||
function setcomponet(v);
|
||||
begin
|
||||
FThreader.componet := v;
|
||||
end
|
||||
function getcomponet();
|
||||
begin
|
||||
return FThreader.componet;
|
||||
end
|
||||
end
|
||||
implementation
|
||||
function RunThreadWorkerHost();
|
||||
@@ -286,6 +294,7 @@ type tworkerHost = class(TArray)
|
||||
property OnMessage read FOnMessage write FOnMessage;
|
||||
property OnStart read FOnStart write FOnStart;
|
||||
property OnError read FOnError write FOnError;
|
||||
property componet read Fcomponet write Fcomponet;
|
||||
function close(); //关闭命令 0x10
|
||||
begin
|
||||
if FConnectHandle then
|
||||
@@ -301,7 +310,9 @@ type tworkerHost = class(TArray)
|
||||
if iffuncptr(FOnStart) then
|
||||
begin
|
||||
try
|
||||
call(FOnStart,self);
|
||||
if Fcomponet then o := Fcomponet;
|
||||
else o:= self;
|
||||
call(FOnStart,o);
|
||||
except
|
||||
|
||||
end;
|
||||
@@ -339,7 +350,9 @@ type tworkerHost = class(TArray)
|
||||
if iffuncptr(FOnError) then
|
||||
begin
|
||||
try
|
||||
return call(FOnError,self,d);
|
||||
if Fcomponet then o := Fcomponet;
|
||||
else o:= self;
|
||||
return call(FOnError,o,d);
|
||||
except
|
||||
end;
|
||||
end
|
||||
@@ -349,7 +362,9 @@ type tworkerHost = class(TArray)
|
||||
if iffuncptr(FOnMessage) then
|
||||
begin
|
||||
try
|
||||
return call(FOnMessage,self,d);
|
||||
if Fcomponet then o := Fcomponet;
|
||||
else o:= self;
|
||||
return call(FOnMessage,o,d);
|
||||
except
|
||||
end;
|
||||
end
|
||||
@@ -368,6 +383,7 @@ type tworkerHost = class(TArray)
|
||||
FOnMessage; //onpost message
|
||||
FOnError;
|
||||
FOnStart;
|
||||
Fcomponet;
|
||||
autoref
|
||||
FConnectHandle; //句柄
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user