[阅读: 431] 2005-03-13 17:57:12
上个帖子我没贴全 ;)
宿主代码就下面这些,脚本就图片里的那几行没错
procedure Teditor.ceCompile(Sender: TPSScript);
begin
Sender.AddRegisteredVariable('TestObject', 'TTestObject');
end;
procedure Teditor.ceExecute(Sender: TPSScript);
begin
ce.SetVarToInstance('TESTOBJECT', TestObject);
end;
procedure Teditor.ceCompImport(Sender: TObject; x: TPSPascalCompiler);
begin
with X.AddClassN(X.FindClass('TOBJECT'), 'TTESTOBJECT') do
begin
RegisterProperty('TEXT', 'STRING', iptRW);
RegisterProperty('ONCHANGE', 'TNOTIFYEVENT', iptRW);
end;
end;
procedure TTESTOBJECT_TEXT_R(Self: TTestObject; var T: String);
begin
T := Self.Text;
end;
procedure TTESTOBJECT_TEXT_W(Self: TTestObject; const T: String);
begin
Self.Text := T;
end;
procedure TTESTOBJECT_ONCHANGE_R(Self: TTestObject; var T: TNotifyEvent);
begin
T := Self.OnChange;
end;
procedure TTESTOBJECT_ONCHANGE_W(Self: TTestObject; const T: TNotifyEvent);
begin
Self.OnChange := T;
end;
procedure Teditor.ceExecImport(Sender: TObject; se: TPSExec; x: TPSRuntimeClassImporter);
begin
with x.Add(TTESTOBJECT) do
begin
RegisterPropertyHelper(@TTESTOBJECT_TEXT_R, @TTESTOBJECT_TEXT_W, 'Text');
RegisterEventPropertyHelper(@TTESTOBJECT_ONCHANGE_R, @TTESTOBJECT_ONCHANGE_W, 'OnChange');
end;
end;