Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi VirtualStringTree: Formatierung in einer Node (https://www.delphipraxis.net/119889-virtualstringtree-formatierung-einer-node.html)

Benedikt 2. Sep 2008 21:28


VirtualStringTree: Formatierung in einer Node
 
Nabend ;)

Ich hab schon danach gesucht, bin jedoch nur auf halbfertige, nicht funktionierende Lösungen, andere Nachfragen oder Verweise auf den DrawTree gestoßen.

Ich würde gern innerhalb einer Node eines VST einen bestimmten Teil des Textes zum Beispiel fett ausgeben.
Also ich denk mal im OnPaintText den Text selber zeichnen - erst den normalen Teil dann den fetten, dann wieder normal - oder?

Nur wie krieg ich das hin und dass es auch noch ordentlich aussieht (also auch so als sei es so gewollt - bin da WinAPI-Zeichentechnisch nicht so bewandert :roll: )?
Alle Beispiele die ich gefunden hab beschränken sich leider auf simple Zuweisungen und Änderungen je nach Column an TargetCanvas.

MfG Benedikt

Pfoto 4. Sep 2008 09:13

Re: VirtualStringTree: Formatierung in einer Node
 
Hallo Benedikt,

meines wissens gibt es in der WinAPI keinen Parser, der
FontStyle-Befehle interpretiert und auch im VST ist sowas
nicht eingebaut.

Es gibt aber auf jeden Fall Komponenten, die die z.B.
Basis-Html Styles interpretieren und umsetzen. Ich habe
z.B. ein Html-Label von TMS-Software, aber vielleicht gibt
es auch Freeware.
Die Frage wäre nur auch, wie schnell die Verarbeitung der
Formatierung durch den Parser ist, der ja bei jedem Node
aktiv sein muss.

Hattest du auch schon im Forum des VST geschaut?


Gruß
Jürgen

Benedikt 4. Sep 2008 11:17

Re: VirtualStringTree: Formatierung in einer Node
 
Hi,

jap, das Forum vom VST hab ich auch schon durchsucht ;)
Mein Problem ist weniger das Parsen (ich weiß eigentlich ziemlich genau, welche Teile des Textes ich hervorgehoben haben möchte) als viel mehr wie ich dem VST beibringe, dass dann auch so zu zeichnen (primär welches Event, wie überschreib ich den original gezeichneten Text bzw. verhinder dass der gezeichnet wird, welche Funktionen, etc).

Allerdings ist das jetzt auch nicht mehr so dringend, da ich es geschafft hab im BeforePaintCell einfach eine Unterstreichung an den Stellen vorzunehmen, wo ich die hervorhebung wollte. Fett wäre zwar schöner, aber ich will mich da auch nicht ewig dran aufhalten - falls aber doch noch wem was einfällt...

MfG Benedikt

uligerhardt 4. Sep 2008 12:21

Re: VirtualStringTree: Formatierung in einer Node
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab ein ähnliches Problem mit DrawRichText.pas von hier und dem VirtualDrawTree gelöst - siehe Anhang.

HTH,
Uli.

mkinzler 4. Sep 2008 12:29

Re: VirtualStringTree: Formatierung in einer Node
 
http://www.soft-gems.net/supplement/download.php?ID=67

Benedikt 4. Sep 2008 15:20

Re: VirtualStringTree: Formatierung in einer Node
 
@Uli: Super, Danke. Genau sowas hab ich gesucht ;)
Ich geh dann mal davon aus, dass man sobald man solche Änderungen machen möchte, man um den DrawTree nicht herumkommt.
Eine Frage noch zu deinem Code: Mein Delphi (7) kennt kein TTextFormat und für diese Zeile
Delphi-Quellcode:
TextFormat := [tfExpandTabs, tfNoClip];
kennt das dem RtfLabel beiliegende TRtfTextFormat keine Entsprechungen - es scheint aber trotzdem alles zu funktionieren. Was sollen diese Flags denn bewirken?

@mkinzler: Danke, aber die Hilfe kannt ich schon :? Nach nochmaligen Angucken sagt sie mir eben auch nur: DrawTree nehmen :mrgreen:

mkinzler 4. Sep 2008 15:23

Re: VirtualStringTree: Formatierung in einer Node
 
Schau dir mal Inner Fundamentals -> Paint cycle and stages

Benedikt 4. Sep 2008 15:48

Re: VirtualStringTree: Formatierung in einer Node
 
Zitat:

Zitat von mkinzler
Schau dir mal Inner Fundamentals -> Paint cycle and stages

Den hab ich wohl gelesen, aber wenn ich nichts übersehe dann wüsst ich nicht, an welcher Stelle im PaintCycle ich meinen Text komplett selbst zeichnen könnte/sollte.
Davon ab funktioniert die gepostete Lösung mit dem DrawTree einwandfandfrei :-D

uligerhardt 4. Sep 2008 15:50

Re: VirtualStringTree: Formatierung in einer Node
 
Zitat:

Zitat von Benedikt
@Uli: Super, Danke. Genau sowas hab ich gesucht ;)

Freut mich.

Zitat:

Zitat von Benedikt
Eine Frage noch zu deinem Code: Mein Delphi (7) kennt kein TTextFormat und für diese Zeile
Delphi-Quellcode:
TextFormat := [tfExpandTabs, tfNoClip];
kennt das dem RtfLabel beiliegende TRtfTextFormat keine Entsprechungen - es scheint aber trotzdem alles zu funktionieren. Was sollen diese Flags denn bewirken

Zitat:

Zitat von DrawRichText.pas
Unsupported flags:
tfNoClip, tfEditControl, tfEndEllipsis, tfPathEllipsis, tfExpandTabs,

Keine Ahnung, wie die in meinen Code gekommen sind. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:34 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