![]() |
clColor und TFontStyle in Stream von Virtualstringtree
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:
bei dem VSTSaveNode-Ereigniss. Doch wie fühe ich noch einen Farbwert oder ähnliches hinzu und lese das wieder aus?!
//Caption
Len := Length(Data.FCaption); Stream.write(Len, SizeOf(Len)); Stream.write(PChar(Data.FCaption)^, Len); |
Re: clColor und TFontStyle in Stream von Virtualstringtree
im Prinzip so
Delphi-Quellcode:
oder einfach so
Stream.write(Data.Color, SizeOf(Data.Color));
Delphi-Quellcode:
oder wie/wo auch immer die Farbe abgelegt ist
Stream.write(Data.Color, SizeOf(TColor));
alles was direkt als Daten vorliegt (Integer, Farben, ...) kann auch direkt gespeichert werden |
Re: clColor und TFontStyle in Stream von Virtualstringtree
:-) 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 :gruebel: Ich probier mal weiter rum... wenn jemandem etwas einfällt, ich bin gerne für eine Lehrreiche stunde zu haben :-) (als Zühörer!) |
Re: clColor und TFontStyle in Stream von Virtualstringtree
wenn schon, dann so
Delphi-Quellcode:
du hattest die Länge des in einen String umgewandelten Integers gespeichert
S := IntToStr(Data.clColor);
Len := Length(S); Stream.write(Len, SizeOf(Len)); Stream.write(PChar(S)^, Len); 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 :zwinker: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 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