On Tuesday 15 September 2015 13:45:43 mohamed hamza wrote:
> You mean that we can not have a published propertie a design time to store
> the tform to load at run time ( via OngetSubform event) ?
>
A published property can not hold a class description at design time which is
known at runtime only because it is not compiled into MSEide but into the
target application only. Please remember, ongetsubform returns
a "widgetclassty" not an instance.
"
procedure ttabpage.doselect;
var
subformclass: widgetclassty;
po1: pwidget;
wi1: twidget;
begin
if canevent(tmethod(fongetsubform)) then begin
if fsubform = nil then begin
subformclass:= nil;
fsubforminstancevarpo:= nil;
fongetsubform(self,subformclass,fsubforminstancevarpo);
if subformclass <> nil then begin
po1:= fsubforminstancevarpo;
if po1 = nil then begin
po1:= @wi1;
end;
mseclasses.createmodule(self,subformclass,po1^);
setlinkedvar(po1^,tmsecomponent(fsubform));
// setlinkedvar(subformclass.create(self),tmsecomponent(fsubform));
insertwidget(fsubform,nullpoint);
// if fsubforminstancevarpo <> nil then begin
// fsubforminstancevarpo^:= fsubform;
// end;
if canevent(tmethod(foninitsubform)) then begin
foninitsubform(self,fsubform);
end;
fsubform.visible:= true;
end;
end;
end;
if canevent(tmethod(fonselect)) then begin
fonselect(self);
end;
end;
procedure ttabpage.dodeselect;
begin
if canevent(tmethod(fondeselect)) then begin
fondeselect(self);
end;
if fsubform <> nil then begin
if fsubform.forceclose then begin
fsubform.free;
end
else begin
tabwidget.activepageindex:= tabindex; //reactivate
end;
end;
end;
"
Martin
------------------------------------------------------------------------------
_______________________________________________
mseide-msegui-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk