On 29/nov/07, at 12:16, Fabio Soggia wrote:
Il giorno 29/nov/07, alle ore 11:51, Massimo Valle ha scritto:
In teoria potresti definire un metodo che si chiama Month che va a
coprire la proprietò della super classe, ma questa tecnica (che si
chiama "shadowing") non è una buona pratica e potrebbe portare
problemi.
Se non è troppo, che tipo di problemi?
C'è un mio vecchio post di qualche anno fa sulla mailing-list
americana, dove espongo un problema simile al tuo. E dove Mars Saxman
e Joe Strout mi sconsigliano a tutti costi di fare lo shadowing. Se
ti leggi il thread puoi forse trovare spunti per una diversa
implementazione della tua classe.
http://support.realsoftware.com/listarchives/realbasic-nug/2004-08/
msg03260.html
E visto che ho trovato una persona competente che ha tempo e voglia
di rispondere, perchè alcuni oggetti posso crearli al runtime, tipo
il date, e altri no, tipo un pushbutton?
La risposta purtroppo è: perchè no.
Semplicemente REALbasic non lo prevede. Questo limite di
implementazione se lo tira dietro da quando è nato. Pensa che in
questi giorni sto proprio combattendo con un problema di questo tipo
e poter istanziare un editfield da codice mi sarebbe molto utile.
Esistono però soluzioni alternative. La più classica prevede che tu
crei un controllo (es. un pushButton) che serva da template. Lo
istanzi in una finestra e puoi anche renderlo invisibile. Quando ti
serve un pushButton nella stessa finestra puoi impostare le varie
propprietà, posizione, dimensione, ecc. e poi renderlo visibile. Se
te ne servono diversi, puoi clonare il template. L'unico problema è
che in questo modo RB ti crea un array di controlli e l'evento Action
è unico per tutti, quindi dovrai differenziare nel codice basandoti
sull'argomento Index dell'evento Action.
Però forse con i Delegates inseriti in RB 2007r4 ci potrebbe essere
qualche scappatoia....
Massimo
|