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!