Newsgroup: it.comp.lang.delphi
Titolo: Aiuto Installazione Componenti Delphi 7

Salve a tutti
Ho un disperato bisogno del vostro aiuto.
Ho installato da poco Dalphi 7 e mi sono scontrato con un problema per me
insormontabile
nel momento in cui cerco compilare e poi installare un .dpk delphi mi da
sempre questo errore:
Required package "designide" not Found
dopo di che ho recuperato il file designide.dcp dalla
versione trial di delphi7 e mi da quest'altro errore:
Bad packaged unit format:
c:\programmi\borland\delphi7\Lib\designide.dcp.DesignIntf
Marco Cantu' scrive sul suo sito..........
//**************************************************************************
*********************
La rimcompilazione di componenti propri o di terze parti fatti con Delphi 4,
in Delphi 5 e ancor più in Delphi 6 crea problemi per l'assenza del file
DsgnIntf.dcu (che contiene le dichiarazione delle calssi base di property
editor e component edior). Cerchiamo di analizzare il problema e vedere
alcune soluzioni.
Da licenza Borland, la unit DsgnIntf non può essere usata all'interno di
un'applicazione o di un componente usato da un'applicazione. Questo era già
così anche in Delphi 4 e 5, ma molti (troppi) sviluppatori hanno continuata
ad usarla. Allora Borland in Delphi 6 ha reso la regola vincolante.
Il motivo è semplice: DsgnIntf contiene buona parte del codice di Delphi
stesso, e quindi usandola in un programma si possonon inserire gli editor di
Delphi, facendosi un piccolo clone dell'ambiente di sviluppo (ovviamente in
concorrenza con Delphi stesso).
Visto il problema, cerchiamo ora la soluzione. DsgnIntf contiene solo editor
usati come base per i propri property e component editor. Tutto questo
codice, in Delphi 6 si trova compilato in un package nuovo, DesignIde, che
deve stare nei "requires" di ogni pacakge che vuole definire propri editor.
Il vincolo, però, è che questo non può essere usato come package runtime,
per cui anche il proprio package con gli editor deve essere un package usato
a desing time only.
Questo significa che se avete un package con un componente e degli editor
dovete "obbligatoriamente" (la cosa era già consigliata da Borland e da
tutti i vari libri) dividere il vostro codice in unit e package distinti:
uno per il componente vero e proprio e l'altro per tutta la parte design
time, compresi editor, register varie, ecc.
Purtroppo moltissimi componenti di teze parti, soprattutto quelli
"non-professionali" che trovate in giro per internet, ma anche alcuni a
pagamento, usano l'approccio di mettere tutto insieme e questo rende molto
faticoso il porting a Delphi 6 (cosa che se non sbaglio è comunque anche
descritta tra le novità del prodotto). Se vi capitano sottomano componenti
fatti diversamente fate pure avere queste mie note a chi li scrive: il
codice può essere strutturato bene (con la divisione dei package) anche in
Delphi 5 ed è consigliato anche lì.
Spero che questo aiuti i tanti che si imbattono nel problema. Il
suggerimento che trovate in giro per Delphi 5 (distribuire il file
DsgnIntf.pas) era già lì illegale, in Delphi 6 non è più applicabile,
proprio per i riferimenti ad altre unit non disponibili (ancor peggio
distribuire il DsgnIntf.pas di Delphi 5, che crea incompatibilità sulle unit
base in fase di compilazione con Delphi 6).
//**************************************************************************
*********************
Non sono molto ferrato nel manipolare il codice dei componeti delphi quindi
sono arrivato alla conclusione che
tutti quei componenti che ero abituato ad utilizzare con delphi 5 e 6 me li
devo dimenticare.
Aiutatemi
Grazie Infinitamente

 li devo dimenticare.
strano, perchè se li usavi in D6, dovrebbero funzionare anche in D7 (non è 
così scontato invece per quelli che funzionavano in D5)
-- 
Mauro Falzari 
   [ 
http://digilander.libero.it/mauro.falzari
 ]
 
 "Se guardi nell'abisso, anche l'abisso guarda in te." 
   (Friedrich Nietzsche)

Grazie seguirò le tue indicazioni...
speriamo bene
LR