diff options
author | Graeme Geldenhuys <graeme@mastermaths.co.za> | 2009-07-28 15:25:09 +0200 |
---|---|---|
committer | Graeme Geldenhuys <graeme@mastermaths.co.za> | 2009-07-28 15:25:09 +0200 |
commit | f4d2d2acddc0d1631155d99e3380cc6f1139245f (patch) | |
tree | 3316da2efb633cf391ba54d1fdbdfc8a9a9c08ea | |
parent | f69268b8187afdcfe13cd89f55fa5100c9935b34 (diff) | |
download | fpGUI-f4d2d2acddc0d1631155d99e3380cc6f1139245f.tar.xz |
Add new method InsertAtCursorPos() to TfpgBaseEdit
This allows you to insert text at the current cursor location. This
just makes it easier for the user and reused the DoPaste which was
initially for Clipboard support.
The is work towards the Character Map support in TfpgEdit popup menu.
Signed-off-by: Graeme Geldenhuys <graeme@mastermaths.co.za>
-rw-r--r-- | src/gui/fpg_edit.pas | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/gui/fpg_edit.pas b/src/gui/fpg_edit.pas index 8a5e18a4..3494169c 100644 --- a/src/gui/fpg_edit.pas +++ b/src/gui/fpg_edit.pas @@ -60,7 +60,7 @@ type // function PointToCharPos(x, y: integer): integer; procedure DeleteSelection; procedure DoCopy; - procedure DoPaste; + procedure DoPaste(const AText: TfpgString); procedure SetAutoSelect(const AValue: Boolean); procedure SetBorderStyle(const AValue: TfpgEditBorderStyle); procedure SetHideSelection(const AValue: Boolean); @@ -121,12 +121,13 @@ type constructor Create(AOwner: TComponent); override; destructor Destroy; override; function SelectionText: string; + function GetClientRect: TfpgRect; override; procedure SelectAll; procedure Clear; procedure ClearSelection; procedure CopyToClipboard; procedure CutToClipboard; - function GetClientRect: TfpgRect; override; + procedure InsertAtCursorPos(const AText: TfpgString); procedure PasteFromClipboard; property Font: TfpgFont read FFont; property SideMargin: integer read FSideMargin write SetSideMargin default 3; @@ -748,7 +749,7 @@ begin end; ckPaste: begin - DoPaste; + DoPaste(fpgClipboard.Text); hasChanged := True; end; ckCut: @@ -1231,14 +1232,14 @@ begin fpgClipboard.Text := SelectionText; end; -procedure TfpgBaseEdit.DoPaste; +procedure TfpgBaseEdit.DoPaste(const AText: TfpgString); var s: string; prevval: TfpgString; begin prevval := FText; DeleteSelection; - s := fpgClipboard.Text; + s := AText; if (FMaxLength > 0) then if UTF8Length(FText) + UTF8Length(s) > FMaxLength then @@ -1298,6 +1299,12 @@ begin RePaint; end; +procedure TfpgBaseEdit.InsertAtCursorPos(const AText: TfpgString); +begin + if AText <> '' then + DoPaste(AText); +end; + function TfpgBaseEdit.GetClientRect: TfpgRect; begin case BorderStyle of @@ -1309,7 +1316,7 @@ end; procedure TfpgBaseEdit.PasteFromClipboard; begin - DoPaste; + DoPaste(fpgClipboard.Text); end; { TfpgBaseTextEdit } |