Hi,
ich möchte aus einem RTF-Text eine Bitmap mit vorgegebenen Maßen erzeugen. Der RTF-Text liegt als MemoryStream in einem Object.
Mein erster Gedanke war, mir in einer Procedure im Object temporär ein TRichEdit zu erzeugen und dann (wie
hier ) mir daraus eine das ganze in ein Bitmap zu kopieren.
Delphi-Quellcode:
var
MyRTF: TRichEdit;
begin
self.FArbeitenBitmap.Height:=Height;
self.FArbeitenBitmap.Width:=Width;
MyRTF:=TRichEdit.Create(
nil);
MyRTF.Width:=Width;
MyRTF.Height:=Height;
Self.FArbeiten.Position:=0;
MyRTF.Lines.LoadFromStream(self.FArbeiten);
// <---Hier knallt's dann mal
with Self.FArbeitenBitmap.Canvas
do
begin
Lock;
try
myRTF.Perform(WM_PRINT,
Handle, PRF_CLIENT);
//you can trying to change PRF_CLIENT with
//PRF_CHILDREN or PRF_CLIENT or PRF_NONCLIENT or PRF_ERASEBKGND
//or combine them. See what happen...
finally
Unlock
end;
end;
Allerdings kann ich mir den Stream nicht in das RichEdit laden, weil es kein Parent hat. Parent hab ich auch nicht, weil es ja nur ein Object ist. Jetzt dachte ich mir, ich könnte ja mittels
CreateWnd sowas wie ein unsichtbares Fenster erzeugen, und das Richedit damit zufrieden stellen.
Wäre das so denkbar? Wenn ja, wie macht das das? Wenn nein, wie könnte man das besser machen?