![]() |
TStrings-Objekt mit anderem TStrings-Objekt verknüpfen
Ich stelle die Eigenschaft Remark (is TStrings) eines Objektes Obj, welche im Objekt in einem TStringsObjekt gehalten wird, im Formular mittels einer TRichEdit-Komponente Re dar (Eigenschaft Lines). Wie verknüpfe ich aber das Attribut Lines der Komponente am besten mit dem des Objektes. Der Aufruf:
Delphi-Quellcode:
funktioniert nicht. Was natürlich die einfachste Lösung wäre. Jetzt könnte ich mir eine Routine schreiben, die Zeile für Zeile von der einen StringList in die andere schreibt. Das erscheint mir allerdings zu umständlich. Wie bekomme ich Delphi dazu, dass die StringList der TRichEdit-Komponente einfach nur immer auf die StringList des jeweiligen aktuellen Objektes zeigt.
Re.Lines := Obj.Remark
|
Re: TStrings-Objekt mit anderem TStrings-Objekt verknüpfen
Nimm mal eine StringListe. TStrings hat nur virtuelle nicht implementierte Methoden, die erst von den Nachfahren implementiert werden.
|
Re: TStrings-Objekt mit anderem TStrings-Objekt verknüpfen
Danke für den Tipp, aber leider funktioniert es immer noch nicht. Ich glaube, ich übersehe hier irgendeine Zeigerregel, wenn ich das einfach so zuweise, wie ich es oben geschrieben habe. Leider seh' aber nicht durch :(
Greetings Scouty... |
Re: TStrings-Objekt mit anderem TStrings-Objekt verknüpfen
Hallo,
ohne zusätzlichen Quelltext nicht zu sagen. und Zitat:
aber Re.Lines := Obj.Remark wird noch gehen, da hier beim zuweisen automatisch Re.Lines.assign(Obj.Remark) gemacht wird. Obj.Remark := Re.Lines; sieht dann evtl schon anders aus, wenn du bei deinem Objekt in der Set-Methode kein assign mit drin hast, dann kopierst du nicht die Inhalte sondern biegst nur den Zeiger um und das könnte dir schon Problem machen. Mfg Frank |
Re: TStrings-Objekt mit anderem TStrings-Objekt verknüpfen
Eventuell hilft es den zeiger (das Object von TStringlist) zu typisieren damit nicht einfach an der stelle vom speicher was rumgeschrieben wird sondern die dazugehörigen routinen ausgeführt werden so wie es der typ festlegt
|
Re: TStrings-Objekt mit anderem TStrings-Objekt verknüpfen
Ich denke mal mit dem Assign bin ich schon ein Schritt weiter aber so richtig durchblicken tu’ ehrlich gesagt noch nicht, so dass die Funktionalität natürlich auch noch nicht läuft.
Ich will mein Problem etwas genauer schildern: Wir haben eine Klasse MyClass, deren Instanzen MyObjects das Attribut Remark vom Typ TStrings besitzen. Von Instanzen vom Typ MyClass gibt eine Menge in der Anwendung. Der Anwender soll immer eins bearbeiten können. Um auf das Attribut Remark der Objekte zugreifen zu können. Soll dieses mit der StringList einer TRichEdit-Komponente verbunden werden. Ich möchte, dass sobald der User eine Instanz von MyObjekt aktiviert, deren Attribut Remark automatisch in der TRichEdit-Komponente abgebildet wird, wo es auch verändert werden kann. Wenn der Users ein anderes MyObject wählt, soll das Neue in der TRichEdit-Komponente angezeigt werden und die Änderungen des vorherigen Objektes aus TRichEdit in das Attribute Remark des vorherigen Objektes übernommen werden. Ich meine mit einfachen Datentypen (z.B. Strings) ist das ja bekanntlich einfach. Wählt der User Objekt A aus, sage ich einfach
Delphi-Quellcode:
Zum Zurückschreiben der Änderungen drehe ich das ganze einfach um:
TEdit.Text := A.Text;
Delphi-Quellcode:
damit sind die Änderungen am Text von A über TEdit nach A zurück geschrieben und es kann ein neues Objekt in TEdit angezeigt werden.
A.Text := TEdit.Text;
Die Frage ist nun, wie geht das mit TStrings???? |
Re: TStrings-Objekt mit anderem TStrings-Objekt verknüpfen
ich hab jetzt leider nicht mehr viel zeit, muß los.
aber text ist kein objekt. bei objekten biegst du mit objekt1:=objekt2 nur den zeiger um und objekt1 zeigt nun auf objekt2. Hast du die Sourcen, (ab Pro-Version? ) dann gugg dir einfach mal den Aufbau von dem richedit an , imnsbesondere die set-methode von lines. Mfg Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz