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

•  DeLiKaTeS Tetris (Тетрис)  158

•  TDictionary Custom Sort  3 335

•  Fast Watermark Sources  3 086

•  3D Designer  4 845

•  Sik Screen Capture  3 339

•  Patch Maker  3 551

•  Айболит (remote control)  3 656

•  ListBox Drag & Drop  3 013

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

•  Графические эффекты  3 943

•  Рисование по маске  3 247

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

•  Canvas Drawing  2 750

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

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

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

•  Paint on Shape  1 568

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

•  Головоломка Paletto  1 767

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

•  Пазл Numbrix  1 685

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

•  Игра HIP  1 282

•  Игра Go (Го)  1 230

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

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

•  Генератор лабиринта  1 548

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

•  HEX View  1 497

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

 
скрыть


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

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



Delphi Sources

Как создать нестандартную процедуру переноса слов для TEdit, TMemo



Негр играет в шахматы с компьютером и получает мат на 15 ходу. В сердцах бьет по клавиатуре:
- Проклятый виндоуз, опять глючит.

В следующем примере создается процедура разбиения слов при переносах для 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;





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

Квадратные сетки из слов

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

Нейросеть для распознавания образов

Механизм станка качалки для нефти

 

Весы для взвешивания

Кувшины для воды

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

BTMemoryModule

 



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

Группа ВКонтакте