|   | 
 Елементи керування 
Текстовий редактор - Memo (модуль Ctl2)
Політівський текстовий редактор є майже повним аналогом Windows'ного поля Memo. Він так само дозволяє показувати та редагувати багаторядкові тексти, виконувати операції з блоками (за допомогою контекстного меню або гарячих клавіш). Але є у нього одна приємна особливість - політівський Memo розуміє кодировки DOS, Win1251, KOI та навіть при завантаженні файла автоматично визначає його кодировку.
  
Так само, як і з полем вводу InpLine, сам по собі Memo є дуже складним елементом керування (розмір його коду лише трохи менше за розмір коду кернела), але працювати з Memo просто.
 
 
  
Створення редактора
 Function Memo_Create(Prog:PProg; VKind:TMemoKind; 
  Enabled:Boolean; Hint:String): PControl; 
VKind - тип (режим роботи) редактора: mkEditable - звичайний, mkReadOnly - лише для читання.
 
 
  
Малювання редактора
 Procedure Memo_Paint(Me:PControl; 
  VX1,VY1,VX2,VY2:Integer); 
VX1, VY1, VX2, VY2 - координати поля.
 
 
  
Очистити редактор
 Procedure Memo_Clear(Me:PControl); 
  
Встановити тип редактора
 Procedure Memo_SetKind(Me:PControl; VKind:TMemoKind); 
VKind - тип (режим роботи) редактора: mkEditable - звичайний, mkReadOnly - лише для читання.
 
 
  
Встановити шрифт редактора
 Procedure Memo_SetFont(Me:PControl; VFont:Pointer); 
VFont - вказівник на шрифт. Шрифт - це просто відповідний файл формату RAF, як є завантажений у пам'ять. Для завантаження шрифтів дуже зручно юзати функцію завантаження ресурса Kernel.LoadRes, про яку я буду розповідати потім.
 
 
  
Завантажити файл у редактор
 Procedure Memo_LoadFile(Me:PControl; 
  FName:String; ToClear:Boolean); 
- FName - ім'я файла.
 - ToClear - флажок: чи очищувати редактор перед завантаженням файла. True - завантажений файл заміняє текст, що був у редакторі раніше; False - вставити файл у позицію курсора.
  
  
Зберегти текст у редакторі
 Procedure Memo_SaveToFile(Me:PControl; FName:String;
  KeepWordWrap,SaveBAK,DoRecodeBack:Boolean); 
- FName - ім'я файла, в якому буде збережений текст.
 - KeepWordWrap - флажок, як розбивати текст на абзаци при збереженні: True - вставляти CR/LF (символ кінця абзаца) після рядків, на які текст зараз розбитий у вікні; False - вставляти CR/LF тільки в кінці абзаців. Рекомендую юзати False.
 - SaveBAK - флажок, чи зберігати резервну копію файла. True - попередня версія файла зберігається із розширенням BAK, False - не робити резервну копію.
 - DoRecodeBack - флажок, в якій кодировці зберігати файл: True - в якій він і був до завантаження, False - у кодировці DOS.
  
  
Взагалі-то найкращий приклад використання Memo - це політівський Записник, Notepad.pas. Там використовуються майже всі прийоми роботи з Memo і немає майже нічого зайвого. Хіба що робота з гарячими клавішами і вікном FileDlg, що вам теж в принципі не завадить. А можливо, я потім передумаю і все ж вигадаю окремий приклад...
  
		 |   |