Akira83
05-06-2005, 18:43
Vorrei sviluppare un'applicazione modulare che possa quindi essere aggiornata migliorata tramite l'uso di plugin e moduli esterni senza dover ogno volta ricompilare il tutto.
Per fa questo mi sono imbattuto nei package, mai visti primi e che non conosco.
Ho letto la guida e cercato anche documentazione su internet ma non riesco ad utilizzare bene questi package. Ho fatto un pò di prove e se inserisco delle form all'interno dei pacchetti tutto ok, riesco a richiamarle e usarle ma se inserisco degli oggetti da me creati, mi imbatto sempre in errori.
Seguendo la guida ho fatto quanto segue :
- Ho creato una mia classe astratta che viene usata dall'applicazione e
inserita nel package
- Nel package poi creo la classe che estende quella astratta
- Carico in modo dinamico il package e ottengo la classe tramite il suo nome
Fino a qui tutto bene credo, ma ora iniziano i problemi. Infatti quando provo a creare un oggetto dalla classe ottenuta , ricevo sempre un errore del tipo "access violation ..."
Posto il codice che uso per caricare il package:
var
PackageModule: HModule;
AClass: TPersistentClass;
begin
PackageModule := LoadPackage('Prova');
if PackageModule <> 0 then
begin
AClass := GetClass('Nuova');
if AClass <> nil then
Oggetto := TInterfaccia (Aclass).Create;
end;
UnloadPackage(PackageModule);
end;
Dove sbaglio? :confused:
Grazie mille per l'aiuto
Per fa questo mi sono imbattuto nei package, mai visti primi e che non conosco.
Ho letto la guida e cercato anche documentazione su internet ma non riesco ad utilizzare bene questi package. Ho fatto un pò di prove e se inserisco delle form all'interno dei pacchetti tutto ok, riesco a richiamarle e usarle ma se inserisco degli oggetti da me creati, mi imbatto sempre in errori.
Seguendo la guida ho fatto quanto segue :
- Ho creato una mia classe astratta che viene usata dall'applicazione e
inserita nel package
- Nel package poi creo la classe che estende quella astratta
- Carico in modo dinamico il package e ottengo la classe tramite il suo nome
Fino a qui tutto bene credo, ma ora iniziano i problemi. Infatti quando provo a creare un oggetto dalla classe ottenuta , ricevo sempre un errore del tipo "access violation ..."
Posto il codice che uso per caricare il package:
var
PackageModule: HModule;
AClass: TPersistentClass;
begin
PackageModule := LoadPackage('Prova');
if PackageModule <> 0 then
begin
AClass := GetClass('Nuova');
if AClass <> nil then
Oggetto := TInterfaccia (Aclass).Create;
end;
UnloadPackage(PackageModule);
end;
Dove sbaglio? :confused:
Grazie mille per l'aiuto