Olá galera, vamos este artigo, que tem a função de criar marcadores dentro de um TRichEdit.
Adicione um TRichEdit e um TButton no seu formulário
Vamos declarar uma procedure chamada IncluirMarcadorNumercao
Listagem 1: Declarando Procedure IncluirMarcadorNumercao

type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    procedure IncluirMarcador;
  public
    { Public declarations }
  end;


Listagem 2: Implementando Procedure IncluirMarcadorNumercao

procedure TForm1. IncluirMarcadorNumercao;
var
  fmt: TParaformat2;
begin
  FillChar(fmt, SizeOf(fmt), 0);
  fmt.cbSize := SizeOf(fmt);
  // A estrutura PARAFORMAT2 é usado para definir o estilo de numeração.
  // Isto é feito através dos membros seguinte estrutura:
  fmt.dwMask := PFM_NUMBERING or PFM_NUMBERINGSTART or PFM_NUMBERINGSTYLE or
                PFM_NUMBERINGTAB;
  fmt.wNumbering := 2; //Altere este valor por qualquer um dos valores abaixo
      //0 Sem numeração ou bolas
      //1 (PFN_BULLET) usa bola bola
      //2 Números Arabicos (1, 2, 3, ...).
      //3 Letras minusculas (a, b, c, ...).
      //4 Letras maiusculas (A, B, C, ...).
      //5 Letras romanas minusculas (i, ii, iii, ...).
      //6 Letras romandas maiusculas (I, II, III, ...).
      //7 Usa uma seqüência de caracteres começando com o Unicode
      //  Caractere especificado pelo membro wNumberingStart.
  fmt.wNumberingStart := 1;
      //  Valor inicial para a numeração.
  fmt.wNumberingStyle := $200; //Altere este valor por qualquer um dos valores abaixo
       // Estilos de numeração:
       // 0: Segue o número com um parêntesis direito.
       // $ 100: Envolve o número entre parênteses.
       // $ 200: Segue o número com um ponto.
       // $ 300: Exibe apenas o número.
       // $ 400: Continua uma lista numerada sem aplicar o próximo número.
       // $ 8000: Inicia um novo número com wNumberingStart.
  fmt.wNumberingTab := 1440 div 4;
  // Espaço mínimo entre um número parágrafo eo texto do parágrafo.

  RichEdit1.Perform(EM_SETPARAFORMAT, 0, lParam(@fmt));
end; 

Veja o resultado:



Fico por aqui e até o próximo artigo

Um abraço
Wesley Y
www.lithic.com.br