Talk:RichMemo
Page Renaming
Arent. Recently you moved RichMemo to TRichMemo. Not sure why this occurred and what's the reason for it (is there a page that disclose the requirement?), but Russian page was not moved and now it is lost (from user interface!).
Here's a consideration for renaming. While the visual component itself is indeed named TRichMemo, the package is named RichMemo. It includes a little bit more than just TRichMemo component. For example it contains TCustomRichMemo, that is used as a base for a separate package TDBRichMemo!
Thus I'm thinking that the page should named after the package name rather than component name.
Todo SetParaTabs
Add more examples and descriptions about TabStops.
The sample below adjusts RichMemo, to have tab stops for 8 characters sharp in Mono-Width text
procedure InitTabStopWithWidth(out lst: TTabstopList; width: double);
const
ReasonableCount = 12;
var
i : integer;
begin
lst.Count:=ReasonableCount;
SetLength(lst.Tabs, ReasonableCount);
for i:=0 to ReasonableCount-1 do
lst.Tabs[i].Offset:=width*i;
end;
procedure TForm1.FormShow(Sender: TObject);
var
w : double;
lst : TTabStopList;
begin
Canvas.Font.Name:='Courier New'; // RichMemo1.Font.Name
Canvas.Font.Size:=10; // RichMemo1.Font.Size
w:=Canvas.TextWidth('w')/96*72; // should be mono-width anyway
InitTabStopWithWidth(lst, w*8);
RichMemo1.HandleNeeded;
RichMemo1.SetParaTabs (0,-1, lst);
end;