Einzelnen Beitrag anzeigen

r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#7

Re: Klasse komplett dublizieren

  Alt 10. Okt 2006, 17:40
Der Fehler liegt IMHO hier:
Zitat von Alexander Roth:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Move(Pointer(self.Edit1)^, Pointer(ed)^, sizeof(self.Edit1));
end;
sizeof(Edit1) gibt immer 4 aus. Warum? Weil n TEdit nur n Pointer is... ggf. könnte es funktionieren, wenn du noch n Pointer()^ mit einbaust. Trotzdem: Wie unser Spitzohriger Mod schon gesagt hat: Mehr als unschön...

Zitat:
Wieso muss man eigentlich das so schriben: Pointer(ed)^
Was bewirkt das?
Das ich Trock 18. So bekommst du ein dereferenziertes Objekt, was eigentlich aus gutem Grund gar nicht geht...

Zitat:
Gibt es vielleicht einen einacheren Weg?

Kann man vielleicht die Felder und Propertys einer Klasse ganz allgemein durchlaufen?
Also so was für Felder anstadt Objekten:
Delphi-Quellcode:
    for i:=0 to form1.ComponentCount -1 do
      begin
      if form1.Components[i] is TEdit then
        // do something
      end;
Guck dir mal RTTI an. Damit könnte das gehen, was du willst...

Zitat von 3_of_8:
Nenn mir mal eine Sprache, in der du jede beliebige Klasse kopieren kannst.
u.a. .NET-Sprachen und C++. IMHO. .NET hat MemberwiseClone(damit gehts per Trick 19) und ICloneable(sowas wie Assign bei Delphi) C++ kennt sowas wie Kopierkonstruktoren(und so kranke Konstrukte, wie lokale statische Objekte aufm Stack )...

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat