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;