Недавно добавленные исходники

•  TDictionary Custom Sort  539

•  Fast Watermark Sources  905

•  3D Designer  1 830

•  Sik Screen Capture  1 479

•  Patch Maker  1 487

•  Айболит (remote control)  1 410

•  ListBox Drag & Drop  1 177

•  Доска для игры Реверси  21 948

•  Графические эффекты  1 358

•  Рисование по маске  1 298

•  Перетаскивание изображений  1 096

•  Canvas Drawing  972

•  Рисование Луны  814

•  Поворот изображения  772

•  Рисование стержней  816

•  Paint on Shape  493

•  Генератор кроссвордов  762

•  Головоломка Paletto  667

•  Теорема Монжа об окружностях  855

•  Пазл Numbrix  619

•  Заборы и коммивояжеры  850

•  Игра HIP  557

•  Игра Go (Го)  527

•  Симулятор лифта  549

•  Программа укладки плитки  509

•  Генератор лабиринта  565

•  Проверка числового ввода  524

•  HEX View  600

•  Физический маятник  528

•  Задача коммивояжера  560

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Как сделать так, чтобы в Memo переносилось не слово целиком, а только та часть слова, которая не помещается



Сначала нужно объявить две глобальных переменные:


OriginalWordBreakProc: pointer;
NewWordBreakProc: pointer;

Затем описываем в разделе implementation следующую процедуру:


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;





Похожие по теме исходники

Memory Manager

Shared Memory

Numbers Memory

xIPMemo

 

Memo Edit Errors Messages

Memory Monitor

Memory Using in System

Simple Memory Seeker

 

Process Memory Map

Проверка числового ввода




Copyright © 2004-2022 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте   Facebook   Ссылка на Twitter   Ссылка на Telegram