![]() |
RichText in StringGrid
Hi Leutz,
lange war ich nicht hier ;) Und hab mich auch lange aus der Programmierung zurückgezogen. Aber da bekanntlich die Katze das mausern auch nicht lassen kann ..... Ok, zum Thema: Ich will einen Formatierten String in einem StringGrid darstellen. Dabei kommt es mir nicht darauf an, das dieser auch mit Formatierungen dort editierbar ist. Sondern es geht nur um die Darstellung. Gut, wenn das auch noch ginge, wäre ich nicht traurig ;) Mein bisherige Herangehensweise war wie folgt: Ich habe im Stringgrid eine Zelle mit Text. Diese lade ich mir in ein RichText. Dort formatiere ich sie, und speichere sie über einen Stream in einer anderen, unsichtbaren Zelle der selben Zeile. Dann dachte ich mir, ich kann im Draw der ersten Zelle, mir ein RichEdit erzeugen, dieses wieder mittels Stream mit dem formatierten Text aus der unsichtbaren Zelle laden, und dann über ein Canvas von dem Richtext einfach ein Bitmap (oder sonstwas) ausschneiden und dann über die darzustellende Zelle legen. Dummerweise hat die RichText-Komponente keine Canvas-Eigenschaft. Hat da irgendwer eine Idee wie ich das lösen könnte? Was mir grad noch einfällt. Blöd ist eigentlich auch, das es keine RichEdit-Komponente gibt (jedenfalls kenn ist mir die jetzt nicht bekannt). Und wenn ich ein RichText auf eine Zeile verkleinere, kann es ja vorkommen, das der Benutzer mit CURSER_DOWN mal in die zweite, leere Zeile rutscht. :( |
Re: RichText in StringGrid
OK...ich hab ne Lösung gefunden.
Zwar nicht so, wie ich es mir vorgestellt habe, aber es funktioniert. Beim verzweifelten Suchen durch Web ist mir dann irgendwann aufgefallen, das das TMS AdvStringGrid in den Zellen mit RichText umgehen kann. Nette Sache :-D Zwar ist die Darstellung jetzt nicht genauso, wie ich es gerne hätte, aber da mache ich jetzt abstiche. Für alle die es nicht wissen und die es interessiert:
Delphi-Quellcode:
Wußte ich bis dato gar nicht... :mrgreen:
procedure Tfrm_main.sg1GetEditorType(Sender: TObject; ACol, ARow: Integer;
var AEditor: TEditorType); begin if ACol=11 then begin AEditor:=edRichEdit; Panel5.Visible:=True; end else begin AEditor:=edNormal; end; end; Vielen Dank an alle, die sich meine Frage angesehen haben, aber dann doch keine Anwort wußten. ;-) CU |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 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