Difference between revisions of "Talk:RichMemo"

From Free Pascal wiki
Jump to navigationJump to search
Line 1: Line 1:
 +
 +
==Downloading Trunk==
 +
Downloading the entire CCR and extracting just RichMemo is a slow process. This bash script will pull down just trunk into the current dir. Note it depends on file names not changing.
 +
<source lang=bash>
 +
#!/usr/bin/bash
 +
 +
# Gets the trunk version of Richmemo, overwriting current version if present.
 +
# NOTE : if files added or renamed, will require attention !
 +
# DRB Dec 30, 2019
 +
 +
BASE='http://svn.code.sf.net/p/lazarus-ccr/svn/components/richmemo/'
 +
 +
for i in wsrichmeno.pas rtfparspre211.pas rtfdata.inc richmemoutils.pas richmemortf.pas richmemoregister.pas richmemopackage.pas richmemopackage.lrs richmemopackage.lpk richmemohelpers.pas richmemofactory.pas richmemo.pas ; do
 +
rm "$i" 2>/dev/null
 +
wget "$BASE$i"
 +
done;
 +
 +
mkdir -p win32
 +
cd win32
 +
rm *.pas
 +
for i in win32richmemo.pas win32richmemoole.pas win32richmemoproc.pas ; do
 +
rm "$i" 2>/dev/null
 +
wget "$BASE"win32/"$i"
 +
done;
 +
cd ..
 +
 +
for i in carbon cocoa gtk2 qt qt5 ; do
 +
mkdir -p "$i"
 +
cd "$i"
 +
rm "$i"richmemo.pas 2>/dev/null
 +
wget "$BASE""$i/$i"richmemo.pas
 +
cd ..
 +
done;
 +
 +
mkdir -p ide
 +
cd ide
 +
rm *.lfm *.pas 2>/dev/null
 +
wget "$BASE"ide/rtfeditpropdialog.lfm
 +
wget "$BASE"ide/rtfeditpropdialog.pas
 +
cd ..
 +
ls -l
 +
</source>
 +
--[[User:Dbannon|Dbannon]] ([[User talk:Dbannon|talk]]) 01:36, 30 December 2019 (CET)
 +
 
==Page Renaming==
 
==Page Renaming==
 
Arent. Recently you moved RichMemo to TRichMemo.
 
Arent. Recently you moved RichMemo to TRichMemo.
Line 8: Line 52:
 
: I moved it back (I guess I overlooked the /ru page). - [[User:Arent|Arent]] ([[User talk:Arent|talk]]) 12:35, 29 July 2016 (CEST)
 
: I moved it back (I guess I overlooked the /ru page). - [[User:Arent|Arent]] ([[User talk:Arent|talk]]) 12:35, 29 July 2016 (CEST)
 
:: Thanks! Why did you rename it in the first place? [[User:Skalogryz|Skalogryz]] ([[User talk:Skalogryz|talk]]) 14:10, 29 July 2016 (CEST)
 
:: Thanks! Why did you rename it in the first place? [[User:Skalogryz|Skalogryz]] ([[User talk:Skalogryz|talk]]) 14:10, 29 July 2016 (CEST)
 +
 
==Todo SetParaTabs==
 
==Todo SetParaTabs==
 
Add more examples and descriptions about TabStops.
 
Add more examples and descriptions about TabStops.

Revision as of 02:36, 30 December 2019

Downloading Trunk

Downloading the entire CCR and extracting just RichMemo is a slow process. This bash script will pull down just trunk into the current dir. Note it depends on file names not changing.

#!/usr/bin/bash

# Gets the trunk version of Richmemo, overwriting current version if present.
# NOTE : if files added or renamed, will require attention !
# DRB Dec 30, 2019

BASE='http://svn.code.sf.net/p/lazarus-ccr/svn/components/richmemo/'

for i in wsrichmeno.pas rtfparspre211.pas rtfdata.inc richmemoutils.pas richmemortf.pas richmemoregister.pas richmemopackage.pas richmemopackage.lrs richmemopackage.lpk richmemohelpers.pas richmemofactory.pas richmemo.pas ; do
	rm "$i" 2>/dev/null
	wget "$BASE$i"
done;

mkdir -p win32
cd win32
rm *.pas
for i in win32richmemo.pas win32richmemoole.pas win32richmemoproc.pas ; do
	rm "$i" 2>/dev/null
	wget "$BASE"win32/"$i"
done;
cd .. 

for i in carbon cocoa gtk2 qt qt5 ; do
	mkdir -p "$i"
	cd "$i"
	rm "$i"richmemo.pas 2>/dev/null
	wget "$BASE""$i/$i"richmemo.pas
	cd ..
done;

mkdir -p ide
cd ide
rm *.lfm *.pas 2>/dev/null
wget "$BASE"ide/rtfeditpropdialog.lfm
wget "$BASE"ide/rtfeditpropdialog.pas
cd ..
ls -l

--Dbannon (talk) 01:36, 30 December 2019 (CET)

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.

I moved it back (I guess I overlooked the /ru page). - Arent (talk) 12:35, 29 July 2016 (CEST)
Thanks! Why did you rename it in the first place? Skalogryz (talk) 14:10, 29 July 2016 (CEST)

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;