AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Memo in ein TMemo speichern und wieder auslesen?

Memo in ein TMemo speichern und wieder auslesen?

Ein Thema von Piro · begonnen am 13. Okt 2008 · letzter Beitrag vom 14. Okt 2008
Antwort Antwort
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

Memo in ein TMemo speichern und wieder auslesen?

  Alt 13. Okt 2008, 19:55
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:
type
  TOSystemData = class
  private
    //
  public
    ...
    name : String;
    comments : TMemo;
    ...
  end;
Speichern der Memo Daten:
Delphi-Quellcode:
...
 SystemData := TOSystemData.Create;
 with SystemData do
 begin
   name := edt_system.Text;
   comments := memo_comments;
 end;
 vst_system.AddChild(nil, SystemData);
...
Zugriff auf gespeicherte DAten:
Delphi-Quellcode:
...
 SystemData := TOSystemData(vst_system.GetNodeData(curNode)^);
 edt_system.Text := SystemData.name;
 memo_comments := SystemData.comments;
Leider bleibt das Memo Feld auf dem Formular leer. Warum?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.828 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Memo in ein TMemo speichern und wieder auslesen?

  Alt 13. Okt 2008, 19:58
Beschränke dich mal auf Memo.Text
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Memo in ein TMemo speichern und wieder auslesen?

  Alt 13. Okt 2008, 20:03
Ich habe über all ".Text" eingefügt aber es bleibt trotzdem leer.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.828 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Memo in ein TMemo speichern und wieder auslesen?

  Alt 13. Okt 2008, 20:08
Und welchen Typ hat comments jetzt?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Memo in ein TMemo speichern und wieder auslesen?

  Alt 13. Okt 2008, 20:13
Comments habe ich auch .Text angehangen und der Type ist "TMemo".

Wenn ich das .Text bei comments weglasse, erscheint folgender Fehler:
Zitat:
[Pascal Fehler] uMain.pas(1663): E2010 Inkompatible Typen: 'TMemo' und 'TCaption'
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.828 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Memo in ein TMemo speichern und wieder auslesen?

  Alt 13. Okt 2008, 20:28
Memo.Text ist vom Typ String
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Memo in ein TMemo speichern und wieder auslesen?

  Alt 13. Okt 2008, 23:49
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
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#8

Re: Memo in ein TMemo speichern und wieder auslesen?

  Alt 14. Okt 2008, 00:29
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
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Memo in ein TMemo speichern und wieder auslesen?

  Alt 14. Okt 2008, 19:23


Ich glaube es nicht. Ich habe es hinbekommen.

Vielen vielen Dank euch und schönen Abend.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf