Jak zrobić w RichEdit indeks dolny lub górny ( tak jak w Wordzie )

Adam Boduch

Przede wszystkim do listy modułów ( uses ) musisz dodać "RichEdit".

procedure TForm1.btnIndexClick(Sender: TObject);
var
  CharFormat : TCharFormat;
begin
  ZeroMemory(@CharFormat, SizeOf(TCharFormat)); // zerowanie pamieci
  with CharFormat do
  begin
     cbSize := SizeOf(TCharFormat);  // przydziel pamiec
     RichEdit.Perform(EM_GETCHARFORMAT, 1, LParam(@CharFormat));
     yHeight:=Round(yHeight*0.7); // wysokosc
     yOffset:=Round(yHeight*0.3);   // polozenie

     RichEdit.Perform(EM_SETCHARFORMAT, wParam(SCF_SELECTION), LParam(@CharFormat));
  end;
  RichEdit.SetFocus;
  RichEdit.SelLength := 0;
end;

Najpierw pobierane są dotychcczasowe ustawienia czcionki, a następnie do wysokości czcionki dodawane jest położenie ( yOffset ). Później nowa wartość jest przypisywana komponentowi. Jeżeli chcesz mieć indeks dolny musisz nadać parametrowu yOffset wartość ujemną - jeżeli chcesz żeby było tak jak wczęsniej musisz nadać wartość zerową.

FAQ

1 komentarz

Całkiem fajne :). Przyda mi się. Trzeba tylko poprawić jedną drobną rzecz :). By było tak jak wcześniej trzeba parametrowu yOffset nadać wartość zerową, a w parametrze yHeight nie pomnożyć przez 0,7 ale podzielić :). Ale ocenaim na 6!!!