Ciao a tutti,
dopo una mattina di ricerche ho trovato il modo di chiamare un metodo della classe che istanzio a run-time. Ecco come si fa:
codice:
var mymethod: procedure(var:string; var1: string; var2: string);
...
PackageModule := LoadPackage('VEN.bpl'); //carico il package contenete la classe
if PackageModule <> 0 then begin
AClass := GetClass('TFrmTDocumenti'); //recupero la classe che mi interessa
if aclass <> nil then begin
MyForm := TComponentClass(AClass).Create(Application) as TForm; //la istanzio la classe
mymethod := MyForm.MethodAddress('setdettaglio'); //il metodo setdettaglio deve essere di tipo published nella classe che lo contiene
if Assigned(mymethod) then
mymethod('','P','C'); //non ho capito il perchè ma bisogna dichiare una variabile in più all'inizio.
MyForm.ShowModal;
MyForm.Release;
end;
UnloadPackage(PackageModule);
end;
l'unico problema che ho è che sembrerebbe che la create non crea tutti gli oggetti che sono contenuti nella classe TFrmTDocumenti. Qualcuno si è scontrato con questo problema?
ciao.
mainetz