На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Object Pascal / Как создание нестандартную процедуру разбиения слов при переносах для TEdit, TMemo или TRichEdit? Сделать домашней страницей Добавить в избранное Написать писмо

Как создание нестандартную процедуру разбиения слов при переносах для TEdit, TMemo или TRichEdit?


В следующем примере создается процедура разбиения слов при переносах для TMemo. Заметьте, что реализованная процедура просто всегда разрешает перенос. Для дополнительной информации см.таже документацию к сообщению EM_SETWORDBREAKPROC.

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;


Источник: Дельфи. Вокруг да около.



Copyright ©   "Мастера DELPHI"   E-mail:   delphi@mastak.com  http://www.delphimaster.ru
Источник получения информации: http://www.delphimaster.ru
Hosted by uCoz