AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein clColor und TFontStyle in Stream von Virtualstringtree
Thema durchsuchen
Ansicht
Themen-Optionen

clColor und TFontStyle in Stream von Virtualstringtree

Ein Thema von stho · begonnen am 29. Okt 2009 · letzter Beitrag vom 29. Okt 2009
Antwort Antwort
stho

Registriert seit: 16. Sep 2009
Ort: 127.0.0.1
288 Beiträge
 
Delphi 2007 Professional
 
#1

clColor und TFontStyle in Stream von Virtualstringtree

  Alt 29. Okt 2009, 14:02
Hallo Leute

Ich habe einen VirtualStringTree und möchte die Nodes Farbig oder sonst anderst aussehen lassen (sprich: Fett gedruckt, Kursiv, ...)
Klappt auch alles ganz wunderbar. Doch jetzt komme ich an den punkt so einen VST zu speichern.
Wie mache ich das?

Die Caption speichere ich mit

Delphi-Quellcode:
  //Caption
  Len := Length(Data.FCaption);
  Stream.write(Len, SizeOf(Len));
  Stream.write(PChar(Data.FCaption)^, Len);
bei dem VSTSaveNode-Ereigniss. Doch wie fühe ich noch einen Farbwert oder ähnliches hinzu und lese das wieder aus?!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#2

Re: clColor und TFontStyle in Stream von Virtualstringtree

  Alt 29. Okt 2009, 14:26
im Prinzip so
Stream.write(Data.Color, SizeOf(Data.Color)); oder einfach so
Stream.write(Data.Color, SizeOf(TColor)); oder wie/wo auch immer die Farbe abgelegt ist

alles was direkt als Daten vorliegt (Integer, Farben, ...) kann auch direkt gespeichert werden
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
stho

Registriert seit: 16. Sep 2009
Ort: 127.0.0.1
288 Beiträge
 
Delphi 2007 Professional
 
#3

Re: clColor und TFontStyle in Stream von Virtualstringtree

  Alt 29. Okt 2009, 14:36
das ist toll

so hats funktioniert :

Delphi-Quellcode:
  //Color
  Len := Length(IntToStr(Data.clColor));
  Stream.write(Len, SizeOf(Len));
  Stream.write(PChar(Data.clColor)^, Len);


nur jetzt haperts beim auslesen

Ich probier mal weiter rum... wenn jemandem etwas einfällt, ich bin gerne für eine Lehrreiche stunde zu haben (als Zühörer!)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#4

Re: clColor und TFontStyle in Stream von Virtualstringtree

  Alt 29. Okt 2009, 16:07
wenn schon, dann so
Delphi-Quellcode:
S := IntToStr(Data.clColor);
Len := Length(S);
Stream.write(Len, SizeOf(Len));
Stream.write(PChar(S)^, Len);
du hattest die Länge des in einen String umgewandelten Integers gespeichert
und dann versucht den Integer als Pointer anzusehn und das zu speichern, auf was dieser zufällig zeigt.
Also sei froh, daß es nicht schon beim Speichern geknallt hat.

Die Länge kennst du SizeOf(TColor) = immer 4 Byte
also brauchst du diese nicht zu speichern, da sie sich nicht ändern wird.

Siehe oben (Beitrag #2):
- dein Len ist ein Integer
- TColor ist im Prinzip auch ein Integer
> also einfach genauso speichern und auslesen, wie du es mit Len auch schon machst
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz