sto facendo il porting di alcuni componenti da delphi 4 a delphi 6 e mi cerca un file dsgnintf.* che in D4 era in \lib mentre in D6 non esiste, chi sa come posso fare?
sto facendo il porting di alcuni componenti da delphi 4 a delphi 6 e mi cerca un file dsgnintf.* che in D4 era in \lib mentre in D6 non esiste, chi sa come posso fare?
Non sei stato l'unico ad avere quel problema.
Si risolve in questo modo:
occorre aggiungere ai requires del package designtime il package designide. Nella unit che si occupa della registrazione dei componenti, aggiungi DesignIntf e DesignEditors alla clausola uses.
Sono in grado anche di spiegarti perchè la Borland ha apportato queste modifiche.
Nelle versioni di Delphi dalla 5 in giù, i package che richiedevano la registrazione di component editor, property editor, ecc. si "linkavano" staticamente al file incriminato (DsgnIntf) che conteneva le classi base e le routine per implementare le proprie classi discendenti personalizzate. Questo però dava luogo ad un problema: quando si compilava il package creando il corrispondente file binario BPL da caricare in Delphi, si compilava (e spesso si distribuiva) codice Borland all'interno dei package (precisamente, quello contenuto nella unit DsgnIntf).
Ora invece, quella unit ha cambiato nome, è disponibile in formato sorgente ma deve essere utilizzata dai package aggiungendo alla clausola requires il file DesignIde.dcp che ti ho indicato sopra, il quale contiene una versione compilata delle nuove unit DesignIntf e DesignEditors da utilizzare, le quali sostituiscono la vecchia DsgnIntf.
Morale: ora i nuovi package designtime non includono più il codice anticamente contenuto nel file DsgnIntf.pas ma si linkano dinamicamente ad esso poichè sfruttano le nuove unit DesignIntf e DesignEditors, che sostituiscono DsgnIntf.pas, collegandosi al package già compilato (DesignIde) che le contiene.
Spero di essere riuscito a spiegarmi con chiarezza...
Ciao!
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Grazie alka sempre puntualissimo, era un pò che non ti sentivo, come va tutto ok?
Ciao
Niente potrebbe andare meglio: a gennaio apro un'azienda con un paio di amici e mi sono già accaparrato alcune commesse per giustificare l'acquisto di una nuova licenza di Delphi, e ciò mi rende ovviamente felice! :mavieni:
A presto!
P.S.: sarà meglio usare i messaggi privati per queste conversazioni...altrimenti si crea della confusione...
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Scusate ancora, ma quando dice Never-build package 'XX' requires always-build package 'RxCtl6' che devo fare? io il package RxCtl6.dpk l'ho compilato e ho messo il bpl in system32, ma mi dice sempre la stessa cosa.
Cosa posso tentare?
Prova a ricompilare il package degli RX modificando le opzioni e impostando la voce Build control su "Explicit rebuild".
Ciao!
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Alka scusami ancora, solo che quando ho acquistato delphi ho chiesto anche il pacco dei manuali ma per ora mi è arrivato solo il cd quindi non ho una guida su cui
Ho installato tutti i package che mi necessitano, ora quando compilo una unit che conteneva DsgnIntf e ora ho sostituito con DesignIntf e DesignEditors, mi dice che non trova DesignIntf.dcu e DesignEditors.dcu.
Il path di \lib\ è incluso nella library path di enviropment opt.
Sai cosa posso fare in attesa dei manuali??
Ciao
Si tratta di un package di tipo designtime oppure runtime?
Controlla le opzioni di progetto del package...
P.S.: dubito che il manuale di Delphi tratti di argomenti avanzati come la disposizione delle unit in questione... :master:
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
ho due unit differenti per fare cose differenti, una designtime e una runtime, il problema è comune.