Ogni volta che si posiziona un pannello su un modulo e un pulsante su quel pannello si crea una connessione "invisibile". La forma diventa la proprietario del pulsante e il pannello è impostato per essere suo genitore.
Ogni componente di Delphi ha una proprietà Owner. Il proprietario si occupa di liberare i componenti di proprietà quando vengono liberati.
Simile, ma diversa, la proprietà Parent indica il componente che contiene il componente "figlio".
Parent si riferisce al componente in cui è contenuto un altro componente, ad esempio TForm, TGroupBox o TPanel. Se un controllo (padre) ne contiene altri, i controlli contenuti sono controlli figlio del padre.
Parent determina come viene visualizzato il componente. Ad esempio, le proprietà Sinistra e Superiore sono tutte relative al Genitore.
La proprietà Parent può essere assegnata e modificata durante il runtime.
Non tutti i componenti hanno il genitore. Molte forme non hanno un genitore. Ad esempio, i moduli che appaiono direttamente sul desktop di Windows hanno Parent impostato su zero. Un componente hasParent Il metodo restituisce un valore booleano che indica se al componente è stato assegnato o meno un genitore.
Usiamo la proprietà Parent per ottenere o impostare il parent di un controllo. Ad esempio, posizionare due pannelli (Panel1, Panel2) su un modulo e posizionare un pulsante (Button1) sul primo pannello (Panel1). Ciò imposta la proprietà Parent di Button su Panel1.
Button1.Parent: = Panel2;
Se si inserisce il codice sopra nell'evento OnClick per il secondo pannello, quando si fa clic su Pannello2 il pulsante "salta" da Pannello1 a Pannello2: Pannello1 non è più il genitore del pulsante.
Quando si desidera creare un pulsante TB in fase di esecuzione, è importante ricordare di assegnare un genitore: il controllo che contiene il pulsante. Perché un componente sia visibile, esso deve avere un genitore per mostrarsi all'interno.
Se selezioni un pulsante in fase di progettazione e controlli la finestra di ispezione degli oggetti, noterai diverse proprietà "Consapevoli dei genitori". Il ParentFont, ad esempio, indica se il carattere utilizzato per la didascalia del pulsante è uguale a quello utilizzato per il genitore del pulsante (nell'esempio precedente: Pannello1). Se ParentFont è True per tutti i pulsanti di un pannello, la modifica della proprietà Font del pannello in grassetto fa sì che tutte le didascalie del pulsante sul pannello utilizzino quel carattere (grassetto).
Tutti i componenti che condividono lo stesso genitore sono disponibili come parte di controlli proprietà di quel genitore. Ad esempio, è possibile utilizzare i controlli iterare su tutti i figli del controllo con finestre.
Il prossimo pezzo di codice può essere usato per nascondere tutti i componenti contenuti su Panel1:
per ii: = 0 per Panel1.ControlCount - 1 fare
Panel1.Controls [ii] .Visible: = false;