In the upcoming 1.4 release of Lazarus, please include lzRichEdit (http://wiki.lazarus.freepascal.org/lzRichEdit) in one of the two lists under Package->Install/Uninstall Packages...
Laz currently does not come with a RichEdit component as Delphi does to create and display files in Rich Text Format (RTF). Unlike RichMemo, with lzRichEdit you don't have to wrestle with svn, just download the zip file from http://sourceforge.net/projects/lazarusfiles/files/lzRichEdit.zip/download and extract it into a directory off of lazarus/components, finally Package->Open Package File .lpk, Compile and Uses->Install. It'll be in the Common Controls tab of the pallete. Another need for a substitute for Delphi's RichEdit (like lzRichEdit) is that the FindText method (not property) doesn't exist in TMemo. It's needed by the FindDialog component to use the WholeWord and CaseSensitive options. Below I've shown an example of using FindDialog's OnFind event to do this with the lzRichEdit component. I'd also like to see the FindText method added to TMemo to avoid overhead when the RTF format isn't needed. Bob B. procedure TForm1.FindDialog1Find(Sender: TObject); var s: string; FoundAt: LongInt; StartPos, ToEnd: Integer; mySearchTypes : TSearchTypes; myFindOptions : TFindOptions; begin mySearchTypes := []; with RichEdit1 do begin if frMatchCase in FindDialog1.Options then mySearchTypes := mySearchTypes + [stMatchCase]; if frWholeWord in FindDialog1.Options then mySearchTypes := mySearchTypes + [stWholeWord]; { Begin the search after the current selection, if there is one. } { Otherwise, begin at the start of the text. } if SelLength <> 0 then StartPos := SelStart + SelLength else StartPos := 0; { ToEnd is the length from StartPos through the end of the text in the rich edit control. } ToEnd := Length(Text) - StartPos; s:=FindDialog1.FindText; // to avoid confusion with richedit1's findtext METHOD FoundAt := richedit1.FindText(s, StartPos, ToEnd, mySearchTypes,not (frdown in finddialog1.Options)); if FoundAt <> -1 then begin SetFocus; SelStart := FoundAt; SelLength := Length(FindDialog1.FindText); end else showmessage(s+'not found!'); end; end;
-- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
