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ą.
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!!!