Главная страница | назад





Article #17142: Creating a custom word break procedure

 Question and Answer Database
FAQ2142D.txt Creating a custom word break procedure
Category :Windows API
Platform :All
Product :All 32 bit
Question:
How do I create a custom word break procedure for the TEdit,
TMemo, or the TRichEdit components?
Answer:
The following example implements a custom work break procedure
and attaches it to a TMemo component. Note that the
implementation of the word break proc simply returns that it
is ok to break the word at the current character. Additional
custom handling can be further implemented. For additional
information, please see the documentation for the
EM_SETWORDBREAKPROC message in the Win32 Help File.
var
OriginalWordBreakProc : pointer;
NewWordBreakProc : pointer;
function MyWordBreakProc(LPTSTR : pchar;
ichCurrent : integer;
cch : integer;
code : integer) : integer
{$IFDEF WIN32} stdcall; {$ELSE} ; export; {$ENDIF}
begin
result := 0;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
OriginalWordBreakProc := Pointer(
SendMessage(Memo1.Handle,
EM_GETWORDBREAKPROC,
0,
0));
{$IFDEF WIN32}
NewWordBreakProc := @MyWordBreakProc;
{$ELSE}
NewWordBreakProc := MakeProcInstance(@MyWordBreakProc,
hInstance);
{$ENDIF}
SendMessage(Memo1.Handle,
EM_SETWORDBREAKPROC,
0,
longint(NewWordBreakProc));
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
SendMessage(Memo1.Handle,
EM_SETWORDBREAKPROC,
0,
longint(@OriginalWordBreakProc));
{$IFNDEF WIN32}
FreeProcInstance(NewWordBreakProc);
{$ENDIF}
end;
7/16/98 4:31:28 PM

Last Modified: 01-SEP-99