Autor Beitrag
Sephiroth
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 102



BeitragVerfasst: Fr 22.11.02 16:28 
Hallo Leute,

wie kann ich den Befehl: Assign(Source...) umkehren?

Ich kann ja mit: Assigned(Source...) abfragen ob Source Assigned ist nur wie bekomm ich das Assignment wieder weg?

Schonmal danke im Voraus
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Fr 22.11.02 16:41 
Hi!

Ich glaube, du wirfst da etwas durcheinander.

Mit der Funktion Assigned kannst du prüfen, ob ein Objekt bereits erstellt wurde (Ganz genau genommen stimmt das nicht, es wird geprüft, ob der übergebene Zeiger nicht NIL ist).

Mit der Prozedur Assign dagegen weist du bestimmte Eigenschaften eines Quellobjekts einem anderen Objekt zu. Beispiel:
ausblenden Quelltext
1:
Memo1.Lines.Assign(Memo2.Lines)					

Dies würde den Inhalt von Memo2 zu Memo1 kopieren.

Dabei gibt es natürlich dann keine Umkehrmöglichkeit, es sei denn, du bastelst dir sowas, indem du dir den ursprünglichen Zustand merkst.

Wenn du einen Zeiger nicht mehr auf ein Objekt zeigen lassen willst, benutzt du einfach Memo1:=NIL, dieser ist dann automatisch Assigned=False. Aber Achtung! Objekte müssen freigegeben werden! Wenn dies der einzige Zeiger auf das Objekt Memo1 ist, produzierst du eine Speicherleiche, rufst du nicht vorher Memo1.Free auf. Beides in einem Rutsch erledigt die Prozedur FreeAndNil.

Cu, :)
Udontknow