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