Thema: Delphi Aufzählung in RichEdit

Einzelnen Beitrag anzeigen

quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Aufzählung in RichEdit

  Alt 26. Mai 2009, 21:53
Keine Ahnung wo dein Problem liegt.
Folgendes funktioniert bei mir einwandfrei
Delphi-Quellcode:
procedure TForm4.RichEdit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  fmt,
  fmt_old : TParaFormat2;
begin
  //Initialize structure
  ZeroMemory(@fmt, SizeOf(TParaFormat2));
  ZeroMemory(@fmt_old, SizeOf(TParaFormat2));
  fmt.cbSize := SizeOf(TParaFormat2);
  fmt_old.cbSize := SizeOf(TParaFormat2);

  //common settings
  fmt.wNumberingStart := 1;
  fmt.wNumberingStyle := $200;
  fmt.wNumberingTab := 360;

  RichEdit1.Perform(EM_GETPARAFORMAT, 0, LPARAM(@fmt_old));

  case Key of
    VK_RETURN:
    begin
      fmt.dwMask := PFM_NUMBERING or PFM_NUMBERINGSTART or PFM_NUMBERINGSTYLE or
        PFM_NUMBERINGTAB;

      if fmt_old.wNumbering <> 0 then
        fmt.wNumbering := fmt_old.wNumbering
      else
        fmt.wNumbering := 2;
    end;


    VK_TAB:
    begin
      fmt.dwMask := PFM_NUMBERING or PFM_NUMBERINGSTART or PFM_NUMBERINGSTYLE or
        PFM_NUMBERINGTAB or PFM_OFFSETINDENT or PFM_OFFSET;

      fmt.dxStartIndent := 300;
      fmt.dxOffset := 100;

      if fmt_old.wNumbering < 6 then
        fmt.wNumbering := fmt_old.wNumbering + 1
      else
        fmt.wNumbering := 2;
    end;
  end;

  //perform
  RichEdit1.Perform(EM_SETPARAFORMAT, 0, LPARAM(@fmt));
end;
Grüße
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat