| |
| Creating a custom word break procedure |
 |
How do I create a custom word break procedure for the TEdit, TMemo, or the TRichEdit components?
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 TForm .FormCreate(Sender: TObject);
begin
OriginalWordBreakProc := Pointer(
SendMessage(Memo .Handle,
EM_GETWORDBREAKPROC,
0,
0));
{$IFDEF WIN32}
NewWordBreakProc := @MyWordBreakProc;
{$ELSE}
NewWordBreakProc := MakeProcInstance(@MyWordBreakProc,
hInstance);
{$ENDIF}
SendMessage(Memo .Handle,
EM_SETWORDBREAKPROC,
0,
longint(NewWordBreakProc));
end;
procedure TForm .FormDestroy(Sender: TObject);
begin
SendMessage(Memo .Handle,
EM_SETWORDBREAKPROC,
0,
longint(@OriginalWordBreakProc));
{$IFNDEF WIN32}
FreeProcInstance(NewWordBreakProc);
{$ENDIF}
end;
|
|
| Hits/month |
2,500,000+ |
Downloads (Since May 2000) |
7,393,709 |
| Total Files |
6,023 |
| Forum msgs |
7,670 |
| Articles/FAQs |
70+/900+ |
Top Selling Software at Amazon
|