Newsgroup: it.comp.lang.delphi
Titolo: Package

Buongiorno,
sto cercando di integrare l'uso dei pakage in un'applicazione ma non ci
riesco.
Il dpk è costituito da una form semplicissima con un bottone come di
seguito:
unit srCompass;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TsrcForm = class(TForm)
    Chiudi: TButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
implementation
{$R *.dfm}
initialization
   RegisterClass( TsrcForm );
end.
Come da manuale di Cantù ho scritto ad un determinato evento nella mia
applicazione voglio richiamare dinamicamente la form del pakage e ho
scritto/copiato il seguente codice:
procedure TsrcMain.lvPersonalizzaDblClick(Sender: TObject);
var cModulo : string;
    MODULO     : TForm;
    FormClass  : TFormClass;
    hModulo    : HModule;
begin
     inherited;
     cModulo := lvPersonalizza.Selected.SubItems.Strings[0];
     hModulo := LoadPackage( cModulo );
     if hModulo > 0 then
     begin
          FormClass := TFormClass(GetClass ('TsrcForm'));   <<<<<<<<<< qui
mi dice che non trova la classe TsrcForm >>>>>>>>>>>>>>
          if Assigned (FormClass) then
          begin
               Modulo := FormClass.Create (Application);
               try
                 Modulo.ShowModal;
               finally
                 Modulo.Free;
               end;
          end else ShowMessage ('Form class not found');
          UnloadPackage (hModulo);
     end else ShowMessage ('Package not found');
end;
Cosa sbaglio ?
-- 
Alberto Menghini
alberto....@asoft.it
ASoft S.r.l.
Corso Isoardi 34/b
12038 Savigliano (CN)
Tel. 0172.726133 - Fax 0172.749962

 Cosa sbaglio ?
Hai abilitato l'opzione Build with Runtime package nelle opzioni di
progetto(project-option-pakage)?
prova a dare uno sguardo a :
http://bdn.borland.com/article/0,1410,27178,00.html
ciao
  gabriele

 progetto(project-option-pakage)?
no non l'ho abilitato perchè vorrei che la cosa fosse dinamica ossia il
package deve essere caricato solo se richiesto e non incluso nell'exe...

 ha scritto nel messaggio
news:c4hep8$2ib4ae$1...@ID-210698.news.uni-berlin.de...

L'opzione serve proprio a questo.
Se NON abiliti Build with Runtime package allora tutte le librerie stanno
nell'exe.
Se ABILITI Build with Runtime package allora tutte le librerie stanno nei
run time package che devi distribuire con la tua allicazione.
Non credo si possano avere le due cose insieme: in tal caso devi usare delle
normali dll (imho)
Giulio

 nell'exe...
dal link che ti ho postato:
We now need to compile the original application with the package option
switched on.
  1.. Select the project "Project1.exe" from the Project Manager by
double-clicking on it.
  2.. Right-click and select "Options..." (You can also select Project |
Options... from the menu.
  3.. Select the "Packages" tab.
  4.. Check the "Build with runtime packages" check box.
  5.. Edit the edit-box in the "Runtime packages" section
cmq... se non hai esigenze particolari per le quali utilizzare package a run
time utilizza una DLL.
ciao
   gabriele

 time utilizza una DLL.
sul libro di Marco cantů ho trovato che se la libreria e l'applicazione sono
scritti entambi in delphi e non si pensa di utilizzare la libreria al di
fuori del contesto dell'applicazione allora i package rappresentano la
soluzione piů pulita...
...io vorrei modularizzare la mia applicazione che sta diventando enorme e
le personalizzazioni per i vari clienti le vorrei pacchettizare in modo da
rendere il programma piů snello possibile.
ho trovato quella definizione di marco ed č ciň che mi ha fatto scegliere
questa strada...
Tu mi dici di usare dll....a cosa vado incontro se uso i package ?

 Tu mi dici di usare dll....a cosa vado incontro se uso i package ?
No aspetta hai frainteso per fare quello che dicevi tu devi utilizzare una
DLL ma
l'utilizzo dei package a Run Time č sicuramente la soluzione che preferisco
ma devo ammettere che l'ide di Delphi 7 con  questa tecnica risulta essere
un pň instabile e a volte diventa davvero fastidioso.
Tutto sommato mi sembrano una buona soluzione sicuramente preferibile a DLL.
p.s. Devi suddividere i package di design time con quelli di run-time.
ciao
   gabriele