/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Klone objekt?
Fra : Thomas Holmgren


Dato : 26-03-04 10:48

Hej alle!

Hvordan kloner jeg et objekt i Delphi? Jeg savner en ækvivalent til
javas java.lang.Object.Clone().

God weekend! :)

--
Mvh.
Thomas Holmgren

 
 
Henry (26-03-2004)
Kommentar
Fra : Henry


Dato : 26-03-04 23:03

> Hvordan kloner jeg et objekt i Delphi? Jeg savner en ækvivalent til
> javas java.lang.Object.Clone().
>

Jeg kender ikke javas clone metode, men hvis du mener kopiere et object over
i et andet object, så er det ikke en standard funktion, i delphi indeholder
et object ofte pointers til andre objecter som igen kan indeholde pointers.
Den eneste måde er at lave en klasse selv som har en .clone metode der
kopiere alle properties fra Object a.propertyX til Object b.propertyX

mvh
Henry



David Konrad (27-03-2004)
Kommentar
Fra : David Konrad


Dato : 27-03-04 01:01

"Henry" <henry@nomail.com> wrote in message
news:4064a896$0$472$edfadb0f@dread14.news.tele.dk...
> > Hvordan kloner jeg et objekt i Delphi? Jeg savner en ækvivalent til
> > javas java.lang.Object.Clone().
> >
>
> Jeg kender ikke javas clone metode, men hvis du mener kopiere et object
over
> i et andet object, så er det ikke en standard funktion, i delphi
indeholder
> et object ofte pointers til andre objecter som igen kan indeholde
pointers.
> Den eneste måde er at lave en klasse selv som har en .clone metode der
> kopiere alle properties fra Object a.propertyX til Object b.propertyX

Ja - og hvorfor sætte folk i gang med at lave dét gratis, som man får løn på
en virksomhed for at producere? Det er jo ikke svært, men bare kedeligt.



Christian Iversen (27-03-2004)
Kommentar
Fra : Christian Iversen


Dato : 27-03-04 05:09

Thomas Holmgren wrote:

> Hej alle!
>
> Hvordan kloner jeg et objekt i Delphi? Jeg savner en ækvivalent til
> javas java.lang.Object.Clone().

Flere objekter understøtter assign(), så du kan eksempelvis bruge:

Var
A, B : TStringList;
Begin
// konstruer listerne
A := TStringList.Create;
B := TStringList.Create;
A.Add('foo');
A.Add('bar');
B.Assign(A); {eller: A.AssignTo(B);}
// Nu er de ens.

// "gør noget med dem"

// vi er færdige
B.Free;
A.Free;
End;

--
M.V.H
Christian Iversen

David Konrad (27-03-2004)
Kommentar
Fra : David Konrad


Dato : 27-03-04 19:52

"Christian Iversen" <chrivers@iversen-net.dk> wrote in message
news:c42unt$1nq7$1@news.cybercity.dk...
> Thomas Holmgren wrote:
>
> > Hej alle!
> >
> > Hvordan kloner jeg et objekt i Delphi? Jeg savner en ækvivalent til
> > javas java.lang.Object.Clone().
>
> Flere objekter understøtter assign(), så du kan eksempelvis bruge:
>
> Var
> A, B : TStringList;
> Begin
> // konstruer listerne
> A := TStringList.Create;
> B := TStringList.Create;
> A.Add('foo');
> A.Add('bar');
> B.Assign(A); {eller: A.AssignTo(B);}
> // Nu er de ens.
>
> // "gør noget med dem"
>
> // vi er færdige
> B.Free;
> A.Free;
> End;

Assign - i det omfang det fungerer - kopierer blot værdier fra ét object til
et andet. En J2EE clone() laver en regulær kopi, dvs opretter f.eks et nyt
TStrings-object hvor et objekt's property er at typen TStrings osv. Assign
laver tildeling - ikke kopier. Skal man lave en clone-ækvivalent i Delphi er
den nemmeste metode en funktion, der traverserer et givet objekts properties
igennem via RTTI, og returnerer et nyt objekt af samme type med nye
instanser af hvert enkelt af dette objekts properties.



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408186
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste