realbasic-nug.it
[Top] [All Lists]

Re: Comportamento normale, bizzarro o bug delle computed property?

To: REALbasic NUG Italian <realbasic-nug dot it at lists dot realsoftware dot com>
Subject: Re: Comportamento normale, bizzarro o bug delle computed property?
From: Massimo Valle <maxduepuntozero at yahoo dot it>
Date: Thu, 29 Nov 2007 12:41:40 +0100
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot it at lists dot realsoftware dot com
References: <2CB96CDB-0313-4C48-B523-9FFD98CDD9A4 at menssana dot to dot it> <FF7DE1A1-7CF5-4060-AB3C-C1195CFECBC1 at yahoo dot it> <D6EA9DDD-B439-4308-A4D5-5378FC5E5556 at menssana dot to dot it> <7A2E9204-BFEB-4B42-9BE5-7318A67A775A at yahoo dot it> <33FD5E13-DC30-434E-94B0-7A74F1B2F5DB at menssana dot to dot it>

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



<Prev in Thread] Current Thread [Next in Thread>