[Gambas-user] Cloning instances of a class to make an exact copy
tobias
tobiasboe1 at ...20...
Sat Jul 23 16:02:10 CEST 2011
On 23.07.2011 15:28, Benoît Minisini wrote:
>> Question:
>>
>> Assume I have an instance of class myclass dimed as 'myclass1'
>> and I want to clone all the data to NEW myclass2
>>
>> The syntax may be something like:
>>
>> myclass2 = NEW myclass 'create instance
>> myclass2.clone(myclass1) 'clone/copy
>>
>> I do realize that:
>> myclass2 = myclass2 only assigns a second pointer to the same single
>> object
>>
>>
>> I am assuming that there is no copy/clone of an instance to another
>> to make an exact replica copy, not just pointers to objects
>>
>> In the mean time, I'll start writing a copy/clone sub
>>
>> ??
>> -Fernando
>>
> Doing a deep copy in a standard way is impossible, so you have to implement
> your Clone() or Copy() method yourself.
>
> Regards,
>
i wrote this one some time ago, but don't know if it is well designed, i
discarded the idea for some reason:
(on a form with TextBox1 and Button1 existing, copies the textbox and
moves it just below the original one)
Public Sub Button1_Click()
Dim hT As New TextBox(Me)
Clone(hT, TextBox1)
hT.Y += hT.Height
End
Public Sub Clone(hBuf As Object, hSource As Object)
Dim sSym As String
For Each sSym In Object.Class(hSource).Symbols 'get all symbols of a
class
If Object.Class(hSource)[sSym].Kind = Class.Property Then 'copy
properties only
Try Object.SetProperty(hBuf, sSym, Object.GetProperty(hSource,
sSym)) 'try is for read-only properties in destintion object
Endif
Next
End
is that an acceptable solution?
regards,
tobi
More information about the User
mailing list