PDA

Visualizza la versione completa : [DELPHI] - RunTime/DesignTime


bDaniele
23-10-2002, 17:06
Ho poca esperienza in merito, mi sto documentando ma alcune cose mi sono ancora oscure:
Io ho un componente, una specie di lookup che in fase di sviluppo (DesignTime) posso crearmi una griglia mediante un pulsante dall'object inspettor, cosa non possibile durante l'esecuzione (RunTime).
Con Delphi 4 tutto ok!
In Delphi 6 se ho capito bene devo dividere il componente in due parti, la unit che serve in RunTime e la unit che serve in DesignTime.
Giusto?

In pratica il tutto consiste nell'avere la form che viene visualizzata in DesignTime con solo i componenti, mentre tutto il codice gira in una unit esterna che in un certo senso pilota tutto.
Ho capito bene?

alka
23-10-2002, 17:40
Cercherò di chiarirti alcune idee (se riesco ad esprimermi). :)

Il significato di runtime e designtime viene applicato poichè, nell'ottica di sviluppo di componenti e relativi editor, ci sono alcuni elementi che devono funzionare sia durante la fase di progettazione che durante la fase di esecuzione. Nel tuo caso, il codice del componente lookup deve essere contenuto in un package di tipo runtime poichè il codice che costituisce il componente stesso e ne determina il comportamento "funziona" sia durante la fase di progettazione del form sia in fase di compilazione ed esecuzione dell'applicazione, sia che il codice del componente venga incluso nell'eseguibile, sia che ci si colleghi dinamicamente al runtime package che contiene il codice del componente (opzione "Build with runtime packages").

Se invece prendiamo in esame la griglia che hai costruito e che richiami dall'Object Inspector, si tratta sicuramente di un elemento esclusivamente designtime, probabilmente un Property Editor. La sua utilità è confinata alla sola fase di progettazione, poichè la griglia non viene (presumibilmente) utilizzata a runtime dall'applicazione, ma solo all'interno di Delphi per modificare alcune proprietà particolari del componente.

Detto questo, si deduce che il codice del componente debba essere incluso in un package di tipo runtime, mentre l'editor di proprietà (la griglia) deve essere riposto in un package designtime, il quale fa riferimento direttamente al package runtime (inserito nella clausola 'requires') per accedere ai tipi ivi contenuti (il componente) e costruirvi sopra editor di proprietà e altri elementi che devono funzionare e vivere solamente all'interno dell'IDE di Delphi.

Purtroppo la problematica di creazione di package e componenti è macchinosa e leggermente complessa, ma spero comunque di averti dato indicazioni significative.

Non posso scrivere kilometri di trattazione dei package, altrimenti non basterebbe il forum...e il tempo... ;)

Ciao! :ciauz:

bDaniele
23-10-2002, 18:22
è come immaginavo!

per quanto il componente l'ho scritto io e non è particolarmente complicato il processo di dividerlo è come hai giustamente detto macchinoso e complesso... per fortuna sono a buon punto, forse in serata finisco.

Ciao

alka
24-10-2002, 02:49
Purtroppo il porting a Delphi 6 da una versione precedente richiede queste modifiche... in parte è un "bagno di sangue", ma sotto altri punti di vista si tratta di forzature che rendono dopotutto più leggeri ed efficienti i package, come vedrai.

Ciao! :ciauz:

bDaniele
24-10-2002, 10:37
Originariamente inviato da alka
Purtroppo il porting a Delphi 6 da una versione precedente richiede queste modifiche... in parte è un "bagno di sangue", ma sotto altri punti di vista si tratta di forzature che rendono dopotutto più leggeri ed efficienti i package, come vedrai.

Ciao! :ciauz:

Ho finito di farlo ieri sera e posso confermare a tutti che il tutto è migliorato, anche in termini di occupazione su disco è diminuito di circa mezzo mega e l'occupazione in memoria è scesa di un pò, ancora non ho controllato i dati precisi, presto vi farò sapere.

Anche se si tratta di un "bagno di sangue" i vantaggi ci sono stati e ci saranno, non da poco la possibilità di un eventuale porting in kylix.

Grazie a tutti e ciao.

Loading