On 04/dic/07, at 11:19, Gilberto De Faveri wrote:
Nè l'estensione della classe nè i delegati permettono il controllo
fine "per istanza" che è possibile dall'IDE.
Questo è vero per una subclass, che la rende di fatto un oggetto non
facilmente riutilizzabile.
Ma con i delegates si potrebbe sostanzialmente agganciare l'evento
Action a qualsiasi metodo, sia esso globale o un metodo di un oggetto
istanziato. Ottenendo lo stesso controllo fine che si ottiene
istanziando un oggetto da IDE. Per inciso il metodo dei delegates è
ampiamente utilizzato in Cocoa, ma anche in altri linguaggi.
Vero. Il compilatore non si lamenta. Servirebbe la possibilità di
impostare a runtile la proprietà Window per la classe Control. O
qualche meccanismo simile.
La situazione è evidentemente più complessa e ho volutamente
semplificato. La proprietà Window, peraltro, viene correttamente
impostata, ma ad un livello più basso il runtime di RB dovrebbe
agganciare la nuova istanza al tree dei controlli relativi alla
finestra.
Ritengo comunque non sia impossibile da fare. Piuttosto penso che
questo comportamento sia radicato nelle origini di RB e sia frutto di
una semplificazione voluta inizialmente, quando RB non aveva la
pretesa di implementare una gestione ad oggetti così spinta per una
questione di semplicità d'uso.
In questa direzione, anche la classe Window non può essere istanziata
direttamente al runtime, ma necessita prima la definizione di una
subclass da usare come istanza diretta o anche come classe da
istanziare.
Massimo
|