Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [DELPHI] - RunTime/DesignTime

    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?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Separare 'runtime' da 'designtime'...

    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!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    è 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

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    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!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    [supersaibal]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! [/supersaibal]
    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.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.