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

Re: date e calcoli

To: REALbasic NUG Italian <realbasic-nug.it@lists.realsoftware.com>
Subject: Re: date e calcoli
From: Gualeni Giovanni <ggualeni@tiscali.it>
Date: Wed, 22 Jul 2009 11:04:01 +0200
Authentication-results: mx.google.com; spf=neutral (google.com: 74.124.194.228 is neither permitted nor denied by domain of realbasic-nug.it-bounces@lists.realsoftware.com) smtp.mail=realbasic-nug.it-bounces@lists.realsoftware.com
Delivered-to: listarchive@realsoftware.com
In-reply-to: <4E70EFB2-8584-4550-BDC8-DA8B012161BD@yahoo.it>
References: <97EF601C-6097-49A4-9D7F-2D9AF36458D0@tiscali.it> <4E70EFB2-8584-4550-BDC8-DA8B012161BD@yahoo.it>
Reply-to: REALbasic NUG Italian <realbasic-nug.it@lists.realsoftware.com>
Sender: realbasic-nug.it-bounces@lists.realsoftware.com
Il giorno 22/lug/09, alle ore 10:45, Massimo Valle ha scritto:

Un oggetto, semplificando, è un puntatore ad una struttura in memoria. Questo in pratica, significa che se tu assegni il riferimento all'oggetto myDate agli altri due (firstDate e lastDate) come effetto ottieni che tutti e tre le istanze (myDate, firstDate e lastDate) puntano allo stesso oggetto. Infatti, quando tu vai a modificare lastDate, automaticamente cambi anche firstDate e myDate, perchè in realtà, a causa della tua assegnazione sono tre puntatori allo stesso oggetto.

In molti linguaggi OOP, esiste la possibilità di clonare un oggetto, cioè farne una copia che risiede in un'altra area di memoria. Questo RB non lo fa, devi arrangiarti da solo.

In pratica puoi risolvere il tuo problema sostituendo l'assegnazione con questo:
 If myDate <> Nil Then
   firstDate.totalSeconds = myDate.totalSeconds
   lastDate.totalSeconds = myDate.totalSeconds
 End If

Quindi non devo 'passare l'oggetto in quanto tale ma il valore che contiene.

Grazie.

Giovanni


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