![]() |
Zwei RTFs in einem RichEdit-Control - Ungültige Zeigerop.
Hallo,
ich habe damals einen Code gehabt, der mit Hilfe der Windows API mehrere RTF-Texte in einem RichView (o.Ä) darstellen kann. Diesen Code verwende ich jetzt in meinem neuen Programm auch wieder, allerdings kommt immer die Fehlermeldung "Ungültige Zeigeroperation". Ich kann mir den Grund des Fehlers aber nicht herleiten. Gut, was Zeigeroperationen sind, weiß ich - aber da dürfte kein Fehler kommen. Hier mal mein QuellText:
Delphi-Quellcode:
Wo konnte der Fehler liegen? Der Wert von "EditStream.dwError" ist -16. Das war er zumindest gestern.
function _AddRtfCallback(dwCookie: Longint; pbBuff: PByte;
cb: Longint; var pcb: Longint): Longint; stdcall; begin try Result := 0; pcb := TStream(dwCookie).Read(pbBuff^, cb); except Result := 1; end; end; procedure AddRtfFromStream(RichEditHandle: THandle; Stream: TStream); var EditStream: TEditStream; begin EditStream.dwCookie := LongInt(Stream); EditStream.dwError := 0; EditStream.pfnCallback := @_AddRtfCallback; SendMessage(RichEditHandle, EM_STREAMIN, SF_RTF + SFF_SELECTION, LongInt(@EditStream)); if EditStream.dwError <> 0 then raise Exception.Create('RichEdit operation fehlgeschlagen!'); end; procedure TForm1.LoadRTF; var ss: TStringStream; begin ss:=TStringStream.Create(''); try ss.WriteString(utf8decode(Form1.ZQuery1.FieldByName('definition').AsString)); ss.Position:=0; AddRTFFromStream(ncTBMS.Handle, ss); finally ss.Free; end; end; Vielen Dank im Voraus |
Re: Zwei RTFs in einem RichEdit-Control - Ungültige Zeigerop
Kann mir jemand helfen? Der Fehler besteht immernoch - ich finde einfach keine Lösung...
|
Re: Zwei RTFs in einem RichEdit-Control - Ungültige Zeigerop
Hallo,
in diesem Thread wird unter anderem eine ShowErrorStr Funktion gezeigt, mit der man den Fehler in 'Klartext' übersetzen lassen kann: ![]() Das Beispiel ist zwar in C, aber im Thread geht es auch um die (undokumentierten?) EM_STREAMIN Errorcodes. Cheers, |
Re: Zwei RTFs in einem RichEdit-Control - Ungültige Zeigerop
Hey Leute,
ehm... was soll ich sagen.. Jetzt funktioniert's. Es war meine Schuld. Ich habe die zu ladenden Texte NICHT im RFT-Format gespeichert. Sorry und trotzdem Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 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