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

Reply via email to