Moin!
Zitat von
ibp:
Zitat von
Muetze1:
Und s.Create ist zwar witzig, aber was sollte das bringen? Eine neue Instanz wird nicht angelegt und die Variablen der Klassen werden auch nicht kopiert...
bei mir schon, es funzt mit s.Create!
Da ich das nicht glauben kann, habe ich das selber mach nachgeschrieben...
Also:
ruft nochmal direkt den Constructor der Klasse auf - besser: von der Instanz von s. Da s als Instanz schon vorhanden ist, ergo die Klasse schon angelegt ist, gibt der Constructor die Instanzenadresse von s zurück. Mit anderen Worten der obige Konstrukt ist das gleiche wie p := s; - mit anderen Worten s.Free; geht noch aber p.Free; geht in die Hose (ungültige Zeiger Op). Du instanziierst nix, sondern du bekommst die Klasse s zurückgeliefert, ergo keine 2. Instanz und keine Kopie der Klasse...
Mein TestProgramm ist im Anhang....
MfG
Muetze1