ID: Errore nell'uso delle classi derivate
copia linkDescrizione del difetto
Instant Developer permette di riutilizzare oggetti tra più applicazioni. Per esempio è possibile creare una classe all'interno di una applicazione, definirne eventi e metodi e poi riutilizzarla in un'altra applicazione contenuta nello stesso progetto. Per fare questo occorre innanzitutto che il flag Pubblico, presente nella videata delle proprietà della classe, sia attivo. Poi è sufficiente tirare la classe premendo CONTROL-SHIFT nell'altra applicazione. Instant Developer crea, nell'applicazione su cui viene tirata la classe, un'apposita classe vuota che eredita tutto il contenuto dalla classe tirata.
Il malfunzionamento si manifestava nel caso descritto dall'immagine seguente:

Nell'immagine è mostrato un caso in cui si manifestava il malfunzionamento. Il progetto contiene due applicazioni: Applicazione1 e Applicazione2. L'Applicazione1 possiede due classi pubbliche ClasseA e ClasseB. La ClasseA possiede una funzione che restituisce un'istanza della ClasseB. Entrambe le classi sono ereditate nell'Applicazione2 e, in una procedura contenuta nell'Applicazione2, viene creata un'istanza della ClasseA ereditata ed una variabile della ClasseB anch'essa ereditata. Poi alla variabile cB viene assegnato il risultato della funzione IstanzaB. Instant Developer segnalava un errore di tipo non corrispondente in quanto la funzione Istanza B restituisce un oggetto di tipo ClasseB e la variabile cB è di tipo ClasseB ereditata. Erroneamente non verificava che i due oggetti fossero uno l'ereditato dell'altro.
Effetti del malfunzionamento
- Veniva segnalato un errore di tipo non corrispondente nel caso descritto dall'immagine.
Soluzioni
Utilizzare la versione 8.5.3800. Qualora non sia possibile utilizzare tale versione è sufficiente utilizzare l'operatore Cast qualora le classi siano entrambe Document Oriented. In alternativa è possibile creare un'apposita libreria che contenga un analogo operatore Cast per informare Instant Developer che gli oggetti sono gli stessi.
Funzionalità interessate
L'uso di classi derivate tra applicazioni.
Ultima modifica: 25/10/2016 / Validità: da 8.5.3800