![]() |
Memo in ein TMemo speichern und wieder auslesen?
Guten Abend,
ich habe mir ein CLass gebaut, welches ich verwende um ein VirtualTreeView zu füllen (Beispiel aus dem virtuellen Stammtisch. Alles funktioniert auch wunderbar. Nur ein Memo bekomme ich nicht gespeichert bzw. nach dem Speichern sind die Daten nicht mehr da für das Memo. Definition der Klasse:
Delphi-Quellcode:
Speichern der Memo Daten:
type
TOSystemData = class private // public ... name : String; comments : TMemo; ... end;
Delphi-Quellcode:
Zugriff auf gespeicherte DAten:
...
SystemData := TOSystemData.Create; with SystemData do begin name := edt_system.Text; comments := memo_comments; end; vst_system.AddChild(nil, SystemData); ...
Delphi-Quellcode:
Leider bleibt das Memo Feld auf dem Formular leer. Warum?
...
SystemData := TOSystemData(vst_system.GetNodeData(curNode)^); edt_system.Text := SystemData.name; memo_comments := SystemData.comments; |
Re: Memo in ein TMemo speichern und wieder auslesen?
Beschränke dich mal auf Memo.Text
|
Re: Memo in ein TMemo speichern und wieder auslesen?
Ich habe über all ".Text" eingefügt aber es bleibt trotzdem leer.
|
Re: Memo in ein TMemo speichern und wieder auslesen?
Und welchen Typ hat comments jetzt?
|
Re: Memo in ein TMemo speichern und wieder auslesen?
Comments habe ich auch .Text angehangen und der Type ist "TMemo".
Wenn ich das .Text bei comments weglasse, erscheint folgender Fehler: Zitat:
|
Re: Memo in ein TMemo speichern und wieder auslesen?
Memo.Text ist vom Typ String
|
Re: Memo in ein TMemo speichern und wieder auslesen?
Irgendwie ist mir das alles nicht so wirklich klar. Verstehe ich das richtig?
1. comments soll ein String werden 2. comments := memo_comments.Text Wenn nein, wäre es schön zu wissen, wie es gemeint ist oder wie ich was ändern müßte. Vielen Dank im voraus. Sven |
Re: Memo in ein TMemo speichern und wieder auslesen?
stimmt schon...warum probierst du's nicht einfach :)
vielleicht mal grob als Erklärung, was du vorher gemacht hast: TMemo ist eine Klasse, comment war eine Instanzvariable, welche nach dem zuweisen nur einen Pointer auf die zugewiesene instanz enthielt (32bit-integer). du greifst also mit memo_comments und mit comments auf das gleiche (nur einmal existierende) Objekt zu. wenn da die Eigeneschaft text leer ist, bekommst du über beide Variablen einen Leerstring zurück. sämtliche Klassen funktionieren nach diesem Prinzip. vielleicht solltest du dir mal ein Anfängertutorial anschauen, was sich mit Klassen,Objekten, Pointern etc beschäftigt.... beim typ String ist dagegen ein bisschen sog. Compiler-Magic im Spiel. Grundlegend liegt auch nur Pointer in der variable (man hat ja in einem Register im Normalfall nur 32 bit zur Verfügung), ABER: bei der zuweisung wird nicht der pointer geändert sondern der referenzierte speicherbereich an die länge des Strings angepasst (und ein 32-bit-integer davor angepasst).Bei PChar ist es ähnlich, nur dass da der Integer zur Längenkennzeichnung fehlt, dafür geht der string bis zum ersten vorkommen eines 0-bytes. Gruß Frank |
Re: Memo in ein TMemo speichern und wieder auslesen?
:bounce1: :bouncing4:
Ich glaube es nicht. Ich habe es hinbekommen. Vielen vielen Dank euch und schönen Abend. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 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 by Thomas Breitkreuz