Я создаю нумерованный список в RichEdit следующим образом:
procedure TForm1.Button1Click(Sender: TObject);
var
fmt: TParaFormat2;
begin
FillChar( fmt, SizeOf( fmt ), 0 );
fmt.cbSize := SizeOf( fmt );
fmt.dwMask := PFM_NUMBERING or PFM_NUMBERINGSTART or
PFM_NUMBERINGSTYLE or PFM_NUMBERINGTAB;
fmt.wNumbering := 2;
/// wNumbering:
// 0 - нет нумерации
// 1 - маркированный список (•, •, •, ...).
// 2 - арабские цифры (1, 2, 3, ...).
// 3 - маленькие буквы (a, b, c, ...).
// 4 - большие буквы (A, B, C, ...).
// 5 - маленькие римские цифры (i, ii, iii, ...).
// 6 - большие римские цифры (I, II, III, ...).
// 7 - последовательность символов Unicode/
fmt.wNumberingStart := 1;
/// wNumberingStart:
// Число, с которого начинается нумерация./
fmt.wNumberingStyle := $200;
/// wNumberingStyle:
// Стиль нумерации
// 0 : 1)
// $100 : (1)
// $200 : 1.
// $300 : 1
// $400 : убрать список
// $8000 : продолжает нумеровать список не изменяя стиля/
fmt.wNumberingTab := 1440 div 4;
/// wNumberingTab:
// расстояние между номером и текстом параграфа/
RichEdit1.Perform( EM_SETPARAFORMAT, 0, lParam( @fmt ) );
end;
Но есть такой вопрос: MS Word позволяет в некоторой части списка разорвать его временно (дважды нажать Enter), а затем продолжить с полседнего элемента. Вопрос: как это реализовать программно?