diff --git a/components/richview/demo/rvdemo.lpi b/components/richview/demo/rvdemo.lpi
index 8ad7a23d5..43155beaa 100644
--- a/components/richview/demo/rvdemo.lpi
+++ b/components/richview/demo/rvdemo.lpi
@@ -11,7 +11,7 @@
-
+
@@ -45,8 +45,8 @@
-
-
+
+
diff --git a/components/richview/demo/unit1.lrs b/components/richview/demo/unit1.lrs
index cb26993a3..680f09007 100644
--- a/components/richview/demo/unit1.lrs
+++ b/components/richview/demo/unit1.lrs
@@ -1,5 +1,3 @@
-{ This is an automatically generated lazarus resource file }
-
LazarusResources.Add('TForm1','FORMDATA',[
'TPF0'#6'TForm1'#5'Form1'#4'Left'#2'~'#6'Height'#3','#1#3'Top'#2'{'#5'Width'#3
+#179#1#18'HorzScrollBar.Page'#3#178#1#23'VertScrollBar.Increment'#2#12#18'Ve'
diff --git a/components/richview/lazrichview.lpk b/components/richview/lazrichview.lpk
index 420717f46..785ad9b87 100644
--- a/components/richview/lazrichview.lpk
+++ b/components/richview/lazrichview.lpk
@@ -16,7 +16,7 @@
-
+
diff --git a/components/richview/richview.pas b/components/richview/richview.pas
index 8a4e288f0..3833f1b75 100644
--- a/components/richview/richview.pas
+++ b/components/richview/richview.pas
@@ -29,7 +29,7 @@ const
rvsBullet = -6;
type
- TRichView = class;
+ TCustomRichView = class;
TRVSaveFormat = (rvsfText,
rvsfHTML,
rvsfRTF, //<---not yet implemented
@@ -65,10 +65,10 @@ type
{------------------------------------------------------------------}
TJumpEvent = procedure (Sender: TObject; id: Integer) of object;
TRVMouseMoveEvent = procedure (Sender: TObject; id: Integer) of object;
- TRVSaveComponentToFileEvent = procedure (Sender: TRichView; Path: String; SaveMe: TPersistent; SaveFormat: TRVSaveFormat; var OutStr:String) of object;
- TRVURLNeededEvent = procedure (Sender: TRichView; id: Integer; var url:String) of object;
- TRVDblClickEvent = procedure (Sender: TRichView; ClickedWord: String; Style: Integer) of object;
- TRVRightClickEvent = procedure (Sender: TRichView; ClickedWord: String; Style, X, Y: Integer) of object;
+ TRVSaveComponentToFileEvent = procedure (Sender: TCustomRichView; Path: String; SaveMe: TPersistent; SaveFormat: TRVSaveFormat; var OutStr:String) of object;
+ TRVURLNeededEvent = procedure (Sender: TCustomRichView; id: Integer; var url:String) of object;
+ TRVDblClickEvent = procedure (Sender: TCustomRichView; ClickedWord: String; Style: Integer) of object;
+ TRVRightClickEvent = procedure (Sender: TCustomRichView; ClickedWord: String; Style, X, Y: Integer) of object;
{------------------------------------------------------------------}
TBackgroundStyle = (bsNoBitmap, bsStretched, bsTiled, bsTiledAndScrolled);
{------------------------------------------------------------------}
@@ -84,8 +84,12 @@ type
public
val: Integer;
end;
+
{------------------------------------------------------------------}
- TRichView = class(TRVScroller)
+
+ { TCustomRichView }
+
+ TCustomRichView = class(TRVScroller)
private
{ Private declarations }
ScrollDelta: Integer;
@@ -158,10 +162,39 @@ type
procedure SetBackgroundStyle(Value: TBackgroundStyle);
procedure SetVSmallStep(Value: Integer);
function GetNextFileName(Path: String): String; virtual;
- procedure ShareLinesFrom(Source: TRichView);
+ procedure ShareLinesFrom(Source: TCustomRichView);
function FindClickedWord(var clickedword: String; var StyleNo: Integer): Boolean;
procedure OnScrollTimer(Sender: TObject);
procedure Loaded; override;
+
+ protected // to be published properties
+ function GetCredits: string; virtual;
+ { Published declarations }
+ //property PopupMenu;
+ //property OnClick;
+ //property OnKeyDown;
+ //property OnKeyUp;
+ //property OnKeyPress;
+ property FirstJumpNo: Integer read FFirstJumpNo write FFirstJumpNo;
+ property OnJump: TJumpEvent read FOnJump write FOnJump;
+ property OnRVMouseMove: TRVMouseMoveEvent read FOnRVMouseMove write FOnRVMouseMove;
+ property OnSaveComponentToFile: TRVSaveComponentToFileEvent read FOnSaveComponentToFile write FOnSaveComponentToFile;
+ property OnURLNeeded: TRVURLNeededEvent read FOnURLNeeded write FOnURLNeeded;
+ property OnRVDblClick: TRVDblClickEvent read FOnRVDblClick write FOnRVDblClick;
+ property OnRVRightClick: TRVRightClickEvent read FOnRVRightClick write FOnRVRightClick;
+ property OnSelect: TNotifyEvent read FOnSelect write FOnSelect;
+ property OnResized: TNotifyEvent read FOnResized write FOnResized;
+ property Style: TRVStyle read FStyle write FStyle;
+ property MaxTextWidth:Integer read FMaxTextWidth write FMaxTextWidth;
+ property MinTextWidth:Integer read FMinTextWidth write FMinTextWidth;
+ property LeftMargin: Integer read FLeftMargin write FLeftMargin;
+ property RightMargin: Integer read FRightMargin write FRightMargin;
+ property BackgroundBitmap: TBitmap read FBackBitmap write SetBackBitmap;
+ property BackgroundStyle: TBackgroundStyle read FBackgroundStyle write SetBackgroundStyle;
+ property Delimiters: String read FDelimiters write FDelimiters;
+ property AllowSelection: Boolean read FAllowSelection write FAllowSelection;
+ property SingleClick: Boolean read FSingleClick write FSingleClick;
+
public
{ Public declarations }
lines:TStringList;
@@ -190,7 +223,7 @@ type
procedure Format;
procedure FormatTail;
- procedure AppendFrom(Source: TRichView);
+ procedure AppendFrom(Source: TCustomRichView);
function GetLastCP: Integer;
property VSmallStep: Integer read SmallStep write SetVSmallStep;
function SaveHTML(FileName, Title, ImagesPrefix: String; Options: TRVSaveOptions):Boolean;
@@ -211,32 +244,45 @@ type
property LineCount: Integer read GetLineCount;
property FirstLineVisible: Integer read GetFirstLineVisible;
property LastLineVisible: Integer read GetLastLineVisible;
+ end;
+
+ TRichView=class(TCustomRichView)
published
- { Published declarations }
+ // published from TRVScroller
+ property Visible;
+ property TabStop;
+ property TabOrder;
+ property Align;
+ property HelpContext;
+ property Tracking;
+ property VScrollVisible;
+ property OnVScrolled;
+
+ // published from TCustomRichView
property PopupMenu;
property OnClick;
property OnKeyDown;
property OnKeyUp;
- property OnKeyPress;
- property FirstJumpNo: Integer read FFirstJumpNo write FFirstJumpNo;
- property OnJump: TJumpEvent read FOnJump write FOnJump;
- property OnRVMouseMove: TRVMouseMoveEvent read FOnRVMouseMove write FOnRVMouseMove;
- property OnSaveComponentToFile: TRVSaveComponentToFileEvent read FOnSaveComponentToFile write FOnSaveComponentToFile;
- property OnURLNeeded: TRVURLNeededEvent read FOnURLNeeded write FOnURLNeeded;
- property OnRVDblClick: TRVDblClickEvent read FOnRVDblClick write FOnRVDblClick;
- property OnRVRightClick: TRVRightClickEvent read FOnRVRightClick write FOnRVRightClick;
- property OnSelect: TNotifyEvent read FOnSelect write FOnSelect;
- property OnResized: TNotifyEvent read FOnResized write FOnResized;
- property Style: TRVStyle read FStyle write FStyle;
- property MaxTextWidth:Integer read FMaxTextWidth write FMaxTextWidth;
- property MinTextWidth:Integer read FMinTextWidth write FMinTextWidth;
- property LeftMargin: Integer read FLeftMargin write FLeftMargin;
- property RightMargin: Integer read FRightMargin write FRightMargin;
- property BackgroundBitmap: TBitmap read FBackBitmap write SetBackBitmap;
- property BackgroundStyle: TBackgroundStyle read FBackgroundStyle write SetBackgroundStyle;
- property Delimiters: String read FDelimiters write FDelimiters;
- property AllowSelection: Boolean read FAllowSelection write FAllowSelection;
- property SingleClick: Boolean read FSingleClick write FSingleClick;
+ property OnKeyPress;
+ property FirstJumpNo;
+ property OnJump;
+ property OnRVMouseMove;
+ property OnSaveComponentToFile;
+ property OnURLNeeded;
+ property OnRVDblClick;
+ property OnRVRightClick;
+ property OnSelect;
+ property OnResized;
+ property Style;
+ property MaxTextWidth;
+ property MinTextWidth;
+ property LeftMargin;
+ property RightMargin;
+ property BackgroundBitmap;
+ property BackgroundStyle;
+ property Delimiters;
+ property AllowSelection;
+ property SingleClick;
end;
procedure InfoAboutSaD(var sad:TScreenAndDevice; Canvas: TCanvas);
@@ -275,7 +321,7 @@ begin
end;
{$ENDIF}
{==================================================================}
-constructor TRichView.Create(AOwner: TComponent);
+constructor TCustomRichView.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FClientTextWidth := False;
@@ -316,7 +362,7 @@ begin
//Format_(False,0, Canvas, False);
end;
{-------------------------------------}
-destructor TRichView.Destroy;
+destructor TCustomRichView.Destroy;
begin
FBackBitmap.Free;
Clear;
@@ -327,23 +373,23 @@ begin
inherited Destroy;
end;
{-------------------------------------}
-procedure TRichView.WMSize(var Message: TWMSize);
+procedure TCustomRichView.WMSize(var Message: TWMSize);
begin
Format_(True, 0, Canvas, False);
if Assigned(FOnResized) then FOnResized(Self);
end;
{-------------------------------------}
-procedure TRichView.Format;
+procedure TCustomRichView.Format;
begin
Format_(False, 0, Canvas, False);
end;
{-------------------------------------}
-procedure TRichView.FormatTail;
+procedure TCustomRichView.FormatTail;
begin
Format_(False, 0, Canvas, True);
end;
{-------------------------------------}
-procedure TRichView.ClearTemporal;
+procedure TCustomRichView.ClearTemporal;
var i: Integer;
begin
if ScrollTimer<>nil then begin
@@ -374,7 +420,7 @@ begin
nJmps :=0;
end;
{-------------------------------------}
-procedure TRichView.Deselect;
+procedure TCustomRichView.Deselect;
begin
Selection := False;
FSelStartNo := -1;
@@ -384,7 +430,7 @@ begin
if Assigned(FOnSelect) then OnSelect(Self);
end;
{-------------------------------------}
-procedure TRichView.SelectAll;
+procedure TCustomRichView.SelectAll;
begin
FSelStartNo := 0;
FSelEndNo := DrawLines.Count-1;
@@ -395,7 +441,7 @@ begin
if Assigned(FOnSelect) then OnSelect(Self);
end;
{-------------------------------------}
-procedure TRichView.Clear;
+procedure TCustomRichView.Clear;
var i: Integer;
begin
Deselect;
@@ -422,7 +468,7 @@ begin
ClearTemporal;
end;
{-------------------------------------}
-procedure TRichView.AddFromNewLine(s: String; StyleNo:Integer);
+procedure TCustomRichView.AddFromNewLine(s: String; StyleNo:Integer);
var info: TLineInfo;
begin
info := TLineInfo.Create;
@@ -432,7 +478,7 @@ begin
lines.AddObject(s, info);
end;
{-------------------------------------}
-procedure TRichView.Add(s: String; StyleNo:Integer);
+procedure TCustomRichView.Add(s: String; StyleNo:Integer);
var info: TLineInfo;
begin
info := TLineInfo.Create;
@@ -442,7 +488,7 @@ begin
lines.AddObject(s, info);
end;
{-------------------------------------}
-procedure TRichView.AddText(s: String;StyleNo:Integer);
+procedure TCustomRichView.AddText(s: String;StyleNo:Integer);
var p: Integer;
begin
{$IFDEF FPC}
@@ -468,7 +514,7 @@ begin
end;
end;
{-------------------------------------}
-procedure TRichView.AddTextFromNewLine(s: String;StyleNo:Integer);
+procedure TCustomRichView.AddTextFromNewLine(s: String;StyleNo:Integer);
var p: Integer;
begin
{$IFDEF FPC}
@@ -492,7 +538,7 @@ begin
end;
end;
{-------------------------------------}
-procedure TRichView.AddCenterLine(s: String;StyleNo:Integer);
+procedure TCustomRichView.AddCenterLine(s: String;StyleNo:Integer);
var info: TLineInfo;
begin
info := TLineInfo.Create;
@@ -502,7 +548,7 @@ begin
lines.AddObject(s, info);
end;
{-------------------------------------}
-procedure TRichView.AddBreak;
+procedure TCustomRichView.AddBreak;
var info: TLineInfo;
begin
info := TLineInfo.Create;
@@ -510,7 +556,7 @@ begin
lines.AddObject('', info);
end;
{-------------------------------------}
-function TRichView.AddNamedCheckPoint(CpName: String): Integer;
+function TCustomRichView.AddNamedCheckPoint(CpName: String): Integer;
var info: TLineInfo;
cpinfo: TCPInfo;
begin
@@ -523,17 +569,17 @@ begin
AddNamedCheckPoint := checkpoints.Count-1;
end;
{-------------------------------------}
-function TRichView.AddCheckPoint: Integer;
+function TCustomRichView.AddCheckPoint: Integer;
begin
AddCheckPoint := AddNamedCheckPoint('');
end;
{-------------------------------------}
-function TRichView.GetCheckPointY(no: Integer): Integer;
+function TCustomRichView.GetCheckPointY(no: Integer): Integer;
begin
GetCheckPointY := TCPInfo(checkpoints.Objects[no]).Y;
end;
{-------------------------------------}
-function TRichView.GetJumpPointY(no: Integer): Integer;
+function TCustomRichView.GetJumpPointY(no: Integer): Integer;
var i: Integer;
begin
GetJumpPointY := 0;
@@ -544,7 +590,7 @@ begin
end;
end;
{-------------------------------------}
-procedure TRichView.AddPicture(gr: TGraphic); { gr not copied, do not free it!}
+procedure TCustomRichView.AddPicture(gr: TGraphic); { gr not copied, do not free it!}
var info: TLineInfo;
begin
info := TLineInfo.Create;
@@ -555,7 +601,7 @@ begin
lines.AddObject('', info);
end;
{-------------------------------------}
-procedure TRichView.AddHotSpot(imgNo: Integer; lst: TImageList; fromnewline: Boolean);
+procedure TCustomRichView.AddHotSpot(imgNo: Integer; lst: TImageList; fromnewline: Boolean);
var info: TLineInfo;
begin
info := TLineInfo.Create;
@@ -566,7 +612,7 @@ begin
lines.AddObject('', info);
end;
{-------------------------------------}
-procedure TRichView.AddBullet(imgNo: Integer; lst: TImageList; fromnewline: Boolean);
+procedure TCustomRichView.AddBullet(imgNo: Integer; lst: TImageList; fromnewline: Boolean);
var info: TLineInfo;
begin
info := TLineInfo.Create;
@@ -577,7 +623,7 @@ begin
lines.AddObject('', info);
end;
{-------------------------------------}
-procedure TRichView.AddControl(ctrl: TControl; center: Boolean); { do not free ctrl! }
+procedure TCustomRichView.AddControl(ctrl: TControl; center: Boolean); { do not free ctrl! }
var info: TLineInfo;
begin
info := TLineInfo.Create;
@@ -589,7 +635,7 @@ begin
InsertControl(ctrl);
end;
{-------------------------------------}
-function TRichView.GetMaxPictureWidth: Integer;
+function TCustomRichView.GetMaxPictureWidth: Integer;
var i,m: Integer;
begin
m := 0;
@@ -612,7 +658,7 @@ begin
max := b;
end;
{-------------------------------------}
-procedure TRichView.Format_(OnlyResized:Boolean; depth: Integer; Canvas: TCanvas;
+procedure TCustomRichView.Format_(OnlyResized:Boolean; depth: Integer; Canvas: TCanvas;
OnlyTail: Boolean);
var i: Integer;
x,b,d,a: Integer;
@@ -694,7 +740,7 @@ begin
LastLineFormatted := Lines.Count-1;
end;
{-------------------------------------}
-procedure TRichView.AdjustChildrenCoords;
+procedure TCustomRichView.AdjustChildrenCoords;
var i: Integer;
dli: TDrawLineInfo;
li : TLineInfo;
@@ -711,7 +757,7 @@ begin
end;
end;
{-------------------------------------}
-procedure TRichView.FormatLine(no: Integer; var x,baseline,prevdesc,prevabove:Integer; Canvas: TCanvas;
+procedure TCustomRichView.FormatLine(no: Integer; var x,baseline,prevdesc,prevabove:Integer; Canvas: TCanvas;
var sad: TScreenAndDevice);
var sourceStrPtr, strForAdd, strSpacePos: PChar;
sourceStrPtrLen: Integer;
@@ -958,7 +1004,7 @@ begin
end;
end;
{-------------------------------------}
-procedure TRichView.AdjustJumpsCoords;
+procedure TCustomRichView.AdjustJumpsCoords;
var i: Integer;
begin
for i:=0 to jumps.Count-1 do begin
@@ -973,12 +1019,12 @@ const gdlnFirstVisible =1;
const gdlnLastCompleteVisible =2;
const gdlnLastVisible =3;
{-------------------------------------}
-function TRichView.GetFirstVisible(TopLine: Integer): Integer;
+function TCustomRichView.GetFirstVisible(TopLine: Integer): Integer;
begin
Result := GetDrawLineNo(TopLine,gdlnFirstVisible);
end;
{-------------------------------------}
-function TRichView.GetFirstLineVisible: Integer;
+function TCustomRichView.GetFirstLineVisible: Integer;
var v: Integer;
begin
v := GetDrawLineNo(VPos*SmallStep, gdlnFirstVisible);
@@ -989,7 +1035,7 @@ begin
Result := TDrawLineInfo(DrawLines.Objects[v]).LineNo;
end;
{-------------------------------------}
-function TRichView.GetLastLineVisible: Integer;
+function TCustomRichView.GetLastLineVisible: Integer;
var v: Integer;
begin
v := GetDrawLineNo(VPos*SmallStep+ClientHeight, gdlnLastVisible);
@@ -1000,7 +1046,7 @@ begin
Result := TDrawLineInfo(DrawLines.Objects[v]).LineNo;
end;
{-------------------------------------}
-function TRichView.GetDrawLineNo(BoundLine: Integer; Option: Integer): Integer;
+function TCustomRichView.GetDrawLineNo(BoundLine: Integer; Option: Integer): Integer;
var
a,b,mid: Integer;
begin
@@ -1060,7 +1106,7 @@ begin
GetDrawLineNo := mid;
end;
{
-function TRichView.GetFirstVisible(TopLine: Integer): Integer;
+function TCustomRichView.GetFirstVisible(TopLine: Integer): Integer;
var
a,b,mid: Integer;
begin
@@ -1115,7 +1161,7 @@ end;
{$ENDIF}
{-------------------------------------}
-procedure TRichView.Paint;
+procedure TCustomRichView.Paint;
var i,no, yshift, xshift: Integer;
cl, textcolor: TColor;
dli:TDrawLineInfo;
@@ -1146,7 +1192,7 @@ begin
Canvas.Font.Style := [];
Canvas.FillRect(Canvas.ClipRect);
if (csDesigning in ComponentState) then
- Canvas.TextOut(ClientRect.Left+1, ClientRect.Top+1, 'RichView v0.5.1 (www.trichview.com)')
+ Canvas.TextOut(ClientRect.Left+1, ClientRect.Top+1, GetCredits)
else
Canvas.TextOut(ClientRect.Left+1, ClientRect.Top+1, 'Error: style is not assigned');
Canvas.Brush.Color := clWindowText;
@@ -1288,7 +1334,7 @@ begin
buffer.Free;
end;
{------------------------------------------------------------------}
-procedure TRichView.InvalidateJumpRect(no: Integer);
+procedure TCustomRichView.InvalidateJumpRect(no: Integer);
var rec: TRect;
i, id : Integer;
begin
@@ -1309,7 +1355,7 @@ begin
Update;
end;
{------------------------------------------------------------------}
-procedure TRichView.CMMouseLeave(var Message: TMessage);
+procedure TCustomRichView.CMMouseLeave(var Message: TMessage);
begin
if DrawHover and (LastJumpMovedAbove<>-1) then begin
DrawHover := False;
@@ -1322,7 +1368,7 @@ begin
end;
end;
{------------------------------------------------------------------}
-procedure TRichView.MouseMove(Shift: TShiftState; X, Y: Integer);
+procedure TCustomRichView.MouseMove(Shift: TShiftState; X, Y: Integer);
var i, no, offs,ys: Integer;
begin
ScrollDelta := 0;
@@ -1349,7 +1395,6 @@ begin
(Y<=TJumpInfo(jumps.objects[i]).t+TJumpInfo(jumps.objects[i]).h-VPos*SmallStep) then
begin
Cursor := FStyle.JumpCursor;
- Writeln('Cursor=',Cursor);
if Assigned(FOnRVMouseMove) and
(LastJumpMovedAbove<>TJumpInfo(jumps.objects[i]).id) then begin
OnRVMouseMove(Self,TJumpInfo(jumps.objects[i]).id+FirstJumpNo);
@@ -1379,7 +1424,7 @@ begin
if Selection then Invalidate;
end;
{-------------------------------------}
-procedure TRichView.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
+procedure TCustomRichView.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var i, StyleNo, no, offs, ys: Integer;
clickedword: String;
p: TPoint;
@@ -1428,7 +1473,7 @@ begin
inherited MouseUp(Button, Shift, X, Y);
end;
{-------------------------------------}
-procedure TRichView.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
+procedure TCustomRichView.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var i,no, StyleNo: Integer;
clickedword: String;
begin
@@ -1466,7 +1511,7 @@ begin
inherited MouseDown(Button, Shift, X, Y);
end;
{-------------------------------------}
-procedure TRichView.AppendFrom(Source: TRichView);
+procedure TCustomRichView.AppendFrom(Source: TCustomRichView);
var i: Integer;
gr: TGraphic;
grclass: TGraphicClass;
@@ -1510,12 +1555,12 @@ begin
end;
end;
{-------------------------------------}
-function TRichView.GetLastCP: Integer;
+function TCustomRichView.GetLastCP: Integer;
begin
GetLastCP := CheckPoints.Count-1;
end;
{-------------------------------------}
-procedure TRichView.SetBackBitmap(Value: TBitmap);
+procedure TCustomRichView.SetBackBitmap(Value: TBitmap);
begin
FBackBitmap.Assign(Value);
if (Value=nil) or (Value.Empty) then
@@ -1529,7 +1574,7 @@ begin
end;
end;
{-------------------------------------}
-procedure TRichView.SetBackgroundStyle(Value: TBackgroundStyle);
+procedure TCustomRichView.SetBackgroundStyle(Value: TBackgroundStyle);
begin
FBackgroundStyle := Value;
if FBackBitmap.Empty then
@@ -1543,7 +1588,7 @@ begin
end;
end;
{-------------------------------------}
-procedure TRichView.DrawBack(DC: HDC; Rect: TRect; Width,Height:Integer);
+procedure TCustomRichView.DrawBack(DC: HDC; Rect: TRect; Width,Height:Integer);
var i, j: Integer;
hbr: HBRUSH;
begin
@@ -1578,7 +1623,7 @@ begin
end
end;
{-------------------------------------}
-procedure TRichView.WMEraseBkgnd(var Message: TWMEraseBkgnd);
+procedure TCustomRichView.WMEraseBkgnd(var Message: TWMEraseBkgnd);
var r1: TRect;
begin
if (csDesigning in ComponentState) then exit;
@@ -1595,13 +1640,13 @@ begin
OldHeight := ClientHeight;
end;
{-------------------------------------}
-procedure TRichView.SetVSmallStep(Value: Integer);
+procedure TCustomRichView.SetVSmallStep(Value: Integer);
begin
if (Value<=0) or (TextHeight div Value > 30000) then exit;
SmallStep := Value;
end;
{-------------------------------------}
-procedure TRichView.ShareLinesFrom(Source: TRichView);
+procedure TCustomRichView.ShareLinesFrom(Source: TCustomRichView);
begin
if ShareContents then begin
Clear;
@@ -1609,7 +1654,7 @@ begin
end;
end;
{-------------------------------------}
-function TRichView.FindItemAtPos(X,Y: Integer): Integer;
+function TCustomRichView.FindItemAtPos(X,Y: Integer): Integer;
var
i, a,b,mid, midtop: Integer;
dli: TDrawLineInfo;
@@ -1657,7 +1702,7 @@ begin
FindItemAtPos := -1;
end;
{------------------------------------------------------------------}
-procedure TRichView.FindItemForSel(X,Y: Integer; var No, Offs: Integer);
+procedure TCustomRichView.FindItemForSel(X,Y: Integer; var No, Offs: Integer);
var
styleno,i, a,b,mid, midtop, midbottom, midleft, midright, beginline, endline: Integer;
dli: TDrawLineInfo;
@@ -1780,7 +1825,7 @@ begin
end;
end;
{------------------------------------------------------------------}
-function TRichView.FindClickedWord(var clickedword: String; var StyleNo: Integer): Boolean;
+function TCustomRichView.FindClickedWord(var clickedword: String; var StyleNo: Integer): Boolean;
var no, lno: Integer;
{$IFNDEF RICHVIEWDEF4}
arr: array[0..1000] of integer;
@@ -1835,7 +1880,7 @@ begin
end;
{------------------------------------------------------------------}
-procedure TRichView.DblClick;
+procedure TCustomRichView.DblClick;
var
StyleNo: Integer;
clickedword: String;
@@ -1846,7 +1891,7 @@ begin
FOnRVDblClick(Self, clickedword, StyleNo);
end;
{------------------------------------------------------------------}
-procedure TRichView.DeleteSection(CpName: String);
+procedure TCustomRichView.DeleteSection(CpName: String);
var i,j, startno, endno: Integer;
begin
if ShareContents then exit;
@@ -1865,7 +1910,7 @@ begin
end;
end;
{------------------------------------------------------------------}
-procedure TRichView.DeleteLines(FirstLine, Count: Integer);
+procedure TCustomRichView.DeleteLines(FirstLine, Count: Integer);
var i: Integer;
begin
if ShareContents then exit;
@@ -1892,7 +1937,7 @@ begin
lines.EndUpdate;
end;
{------------------------------------------------------------------}
-procedure TRichView.GetSelBounds(var StartNo, EndNo, StartOffs, EndOffs: Integer);
+procedure TCustomRichView.GetSelBounds(var StartNo, EndNo, StartOffs, EndOffs: Integer);
begin
if FSelStartNo <= FSelEndNo then begin
StartNo := FSelStartNo;
@@ -1914,7 +1959,7 @@ begin
end;
end;
{------------------------------------------------------------------}
-procedure TRichView.StoreSelBounds(var StartNo, EndNo, StartOffs, EndOffs: Integer);
+procedure TCustomRichView.StoreSelBounds(var StartNo, EndNo, StartOffs, EndOffs: Integer);
var dli: TDrawLineInfo;
begin
GetSelBounds(StartNo, EndNo, StartOffs, EndOffs);
@@ -1930,7 +1975,7 @@ begin
end;
end;
{------------------------------------------------------------------}
-procedure TRichView.RestoreSelBounds(StartNo, EndNo, StartOffs, EndOffs: Integer);
+procedure TCustomRichView.RestoreSelBounds(StartNo, EndNo, StartOffs, EndOffs: Integer);
var i: Integer;
dli, dli2, dli3: TDrawLineInfo;
begin
@@ -1990,12 +2035,12 @@ begin
end;
end;
{------------------------------------------------------------------}
-function TRichView.GetLineCount: Integer;
+function TCustomRichView.GetLineCount: Integer;
begin
GetLineCount := lines.Count;
end;
{------------------------------------------------------------------}
-function TRichView.SelectionExists: Boolean;
+function TCustomRichView.SelectionExists: Boolean;
var StartNo, EndNo, StartOffs, EndOffs: Integer;
begin
GetSelBounds(StartNo, EndNo, StartOffs, EndOffs);
@@ -2005,7 +2050,7 @@ begin
Result := True;
end;
{------------------------------------------------------------------}
-function TRichView.GetSelText: String;
+function TCustomRichView.GetSelText: String;
var StartNo, EndNo, StartOffs, EndOffs, i: Integer;
s : String;
li : TLineInfo;
@@ -2045,7 +2090,7 @@ begin
end;
end;
{------------------------------------------------------------------}
-procedure TRichView.CopyText;
+procedure TCustomRichView.CopyText;
begin
if SelectionExists then begin
ClipBoard.Clear;
@@ -2053,7 +2098,7 @@ begin
end;
end;
{------------------------------------------------------------------}
-procedure TRichView.KeyDown(var Key: Word; Shift: TShiftState);
+procedure TCustomRichView.KeyDown(var Key: Word; Shift: TShiftState);
begin
if SelectionExists and (ssCtrl in Shift) then begin
if (Key = ord('C')) or (Key = VK_INSERT) then CopyText;
@@ -2062,7 +2107,7 @@ begin
inherited KeyDown(Key,Shift)
end;
{------------------------------------------------------------------}
-procedure TRichView.OnScrollTimer(Sender: TObject);
+procedure TCustomRichView.OnScrollTimer(Sender: TObject);
begin
if ScrollDelta<>0 then begin
VScrollPos := VScrollPos+ScrollDelta;
@@ -2070,7 +2115,7 @@ begin
end;
end;
{------------------------------------------------------------------}
-procedure TRichView.Notification(AComponent: TComponent; Operation: TOperation);
+procedure TCustomRichView.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if (Operation=opRemove) and (AComponent=FStyle) then begin
@@ -2078,17 +2123,23 @@ begin
end;
end;
{------------------------------------------------------------------}
-procedure TRichView.Click;
+procedure TCustomRichView.Click;
begin
SetFocus;
inherited;
end;
{------------------------------------------------------------------}
-procedure TRichView.Loaded;
+procedure TCustomRichView.Loaded;
begin
inherited Loaded;
Format;
end;
+
+function TCustomRichView.GetCredits: string;
+begin
+ result := 'Lazarus TRichView based on RichView v0.5.1 (www.TCustomRichView.com)'
+end;
+
{------------------------------------------------------------------}
{$I RV_Save.inc}
{------------------------------------------------------------------}
diff --git a/components/richview/rv_save.inc b/components/richview/rv_save.inc
index 55402423c..85eae89fe 100644
--- a/components/richview/rv_save.inc
+++ b/components/richview/rv_save.inc
@@ -108,7 +108,7 @@ begin
CloseFontTag := s;
end;
{------------------------------------------------------------}
-function TRichView.GetNextFileName(Path: String): String;
+function TCustomRichView.GetNextFileName(Path: String): String;
var fn: String;
begin
while True do begin
@@ -121,7 +121,7 @@ begin
end;
end;
{------------------------------------------------------------}
-function TRichView.SavePicture(DocumentSaveFormat: TRVSaveFormat; Path: String; gr: TGraphic): String;
+function TCustomRichView.SavePicture(DocumentSaveFormat: TRVSaveFormat; Path: String; gr: TGraphic): String;
var fn: String;
bmp: TBitmap;
begin
@@ -147,7 +147,7 @@ begin
end;
{------------------------------------------------------------}
-function TRichView.SaveHTML(FileName,Title,ImagesPrefix: String; Options: TRVSaveOptions):Boolean;
+function TCustomRichView.SaveHTML(FileName,Title,ImagesPrefix: String; Options: TRVSaveOptions):Boolean;
var f: TextFile;
i,j: Integer;
li: TLineInfo;
@@ -303,7 +303,7 @@ begin
end;
end;
{------------------------------------------------------------------}
-function TRichView.SaveText(FileName: String; LineWidth: Integer):Boolean;
+function TCustomRichView.SaveText(FileName: String; LineWidth: Integer):Boolean;
var f: TextFile;
i,j: Integer;
li: TLineInfo;
diff --git a/components/richview/rvscroll.pas b/components/richview/rvscroll.pas
index c8c3e0750..3c925d49f 100644
--- a/components/richview/rvscroll.pas
+++ b/components/richview/rvscroll.pas
@@ -13,6 +13,7 @@ uses
type
{ TRVScroller }
+
TRVScroller = class(TCustomControl)
private
FTracking: Boolean;
@@ -38,15 +39,7 @@ type
procedure ScrollChildren(dx, dy: Integer);
procedure UpdateChildren;
property FullRedraw: Boolean read FFullRedraw write FFullRedraw;
- public
- { Public declarations }
- constructor Create(AOwner: TComponent);override;
- procedure EraseBackground(DC: HDC); override;
- procedure ScrollTo(y: Integer);
- property VScrollPos: Integer read GetVScrollPos write SetVScrollPos;
- property VScrollMax: Integer read GetVScrollMax;
- published
- { Published declarations }
+ protected // to be publised properties
property Visible;
property TabStop;
property TabOrder;
@@ -55,6 +48,13 @@ type
property Tracking: Boolean read FTracking write FTracking;
property VScrollVisible: Boolean read FVScrollVisible write SetVScrollVisible;
property OnVScrolled: TNotifyEvent read FOnVScrolled write FOnVScrolled;
+ public
+ { Public declarations }
+ constructor Create(AOwner: TComponent);override;
+ procedure EraseBackground(DC: HDC); override;
+ procedure ScrollTo(y: Integer);
+ property VScrollPos: Integer read GetVScrollPos write SetVScrollPos;
+ property VScrollMax: Integer read GetVScrollMax;
end;
procedure Tag2Y(AControl: TControl);