Hallöchen!
Ich habe quasi das selbe problem
)
nur stellt es sich als noch etwas schwieriger hervor wenn man keine property auf die member variable hat sondern nur die member. also anstatt:
Zitat von
Garby:
Hallo,
was du suchst ist in Delphi mit der Methode Assign gelöst worden.
Diese Methode wird allerdings erst in TPersistent eingeführt.
Wenn du dein Objekt unbedingt von TObject ableiten willst, kannst du dir das Assign ja nachprogrammieren:
Delphi-Quellcode:
type TMember = class(TObject)
private
FZahl: Integer;
public
procedure Assign(o: TMember);
property Zahl: Integer read FZahl write FZahl;
end;
das hier:
Delphi-Quellcode:
type TMember = class(TObject)
private
FZahl: Integer;
public
procedure Assign(o: TMember);
// property Zahl: Integer read FZahl write FZahl;
end;
jemand davon einen lösungsansatz? ich habe mir mal gedanken drüber gemacht.. man könnte z.B. eine memento klasse erstellen, was ich aber für sehr umständlich halte..
würde dann so aussehen...
Delphi-Quellcode:
type
TMementoMember = class( TObject )
private
FZahl : Integer;
public
property Zahl : integer read FZahl write FZahl;
end;
//..........
type
TMember = class(TObject)
private
FZahl: Integer;
public
procedure SaveContent( coMemento : TMementoMember );
procedure RestoreContent( coMemento : TMementoMember );
end;
procedure TMember.SaveContent( coMemento : TMementoMember );
begin
Zahl := FZahl;
end;
procedure TMember.RestoreContent( coMemento : TMementoMember );
begin
FZahl := Zahl;
end;
und so sähe dann der aufruf aus:
Delphi-Quellcode:
coMemento := TMementoMember.Create;
s := tMember.Create;
P := tMember.Create;
...
//will aber hier.. ( ok dann mach hier :-) )
s.SaveContent( coMemento );
r.RestoreContent( coMemento );
//durchführen, um die StringDaten von S an p zu übergeben und dann erst ändern
...
s.zahl := 12;
p.zahl := 12589;
s.Free
p.Free
coMemento.Free;
Gruß
reli