Witam
Mam problem z zamianą tekstu napisanego w RichEdit na HTML. O ile chodzi o pogrubianie, pochylanie, rozmiar czcionki itp. to nie ma problemu. Ale nie potrafie wykryć np. wypunktowania, numerowania oraz indeksów górnego i dolnego. Nie ma ich we właściwości SellAtributes i nie wiem jak sprawdzić czy ktoraś z tych opcji nie pojawiła się w tekście.
Oto kod do wstawiania numerowania:
procedure TForm1.BClick(Sender: TObject);
var
num_format: TParaformat2;
begin
FillChar(num_format, SizeOf(num_format), 0);
num_format.cbSize := SizeOf(num_format);
num_format.dwMask := PFM_NUMBERING or PFM_NUMBERINGSTART or PFM_NUMBERINGSTYLE or
PFM_NUMBERINGTAB;
num_format.wNumbering := 2;
//0 bak wypunktowania i numerowania
//1 wypuktowanie (czarne kółka)
//2 cyfry arabskie (1, 2, 3, ...).
//3 litery małe(a, b, c, ...).
//4 litery duże (A, B, C, ...).
//5 rzymskie małe (i, ii, iii, ...).
//6 rzymskie duże (I, II, III, ...).
num_format.wNumberingStart := 1;//zacznij numerowanie od
num_format.wNumberingStyle := $200;//styl numerowania
// 0 : 1)
// $100 :(1)
// $200 : 1.
// $300 : 1
// $400 : kontynuacja numerowania
// $8000 : zacznij nowe numerowanie (od wNumberingStart)
num_format.wAlignment := 1440 div 4;
num_format.wNumberingTab := 1440 div 4;
// odtsęp między znakiem numerowania a tekstem akapitu, w twipach
R1.Perform(EM_SETPARAFORMAT, 0, lParam(@num_format));
end;
A to kod do wstawiania indeksu górnego:
procedure TForm1.ITopClick(Sender: TObject);
var
CharFormat : TCharFormat;
begin
ZeroMemory(@CharFormat, SizeOf(TCharFormat)); // zerowanie pamieci
with CharFormat do begin
cbSize := SizeOf(TCharFormat); // przydziel pamiec
R1.Perform(EM_GETCHARFORMAT, 1, LParam(@CharFormat));
yHeight := Round(yHeight*0.7); // wysokosc
yOffset := Round(yHeight*0.3); // polozenie
R1.Perform(EM_SETCHARFORMAT, wParam(SCF_SELECTION), LParam(@CharFormat));
end;
R1.SetFocus;
R1.SelLength := 0;
end;
Czy wie ktoś jak wykryć czy w RichEdit jest wstawione numerowanie albo index górny bardzo bym prosił o jakąś podpowiedź.
Pozdro!!!