richmemo: added CanPaste method and implementation for win32

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4149 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
skalogryz
2015-05-25 01:01:12 +00:00
parent 14ca948efd
commit 4ccf6e7c15
3 changed files with 22 additions and 0 deletions

View File

@ -207,6 +207,7 @@ type
procedure CopyToClipboard; override;
procedure CutToClipboard; override;
procedure PasteFromClipboard; override;
function CanPaste: Boolean; virtual;
procedure SetTextAttributes(TextStart, TextLen: Integer; const TextParams: TFontParams); virtual;
function GetTextAttributes(TextStart: Integer; var TextParams: TFontParams): Boolean; virtual;
@ -811,6 +812,13 @@ begin
TWSCustomRichMemoClass(WidgetSetClass).PasteFromClipboard(Self);
end;
function TCustomRichMemo.CanPaste: Boolean;
begin
if not HandleAllocated then HandleNeeded;
if HandleAllocated then
Result:=TWSCustomRichMemoClass(WidgetSetClass).CanPasteFromClipboard(Self);
end;
procedure TCustomRichMemo.SetRangeColor(TextStart, TextLength: Integer; FontColor: TColor);
begin
SetRangeParams(TextStart, TextLength, [tmm_Color], '', 0, FontColor, [], []);

View File

@ -67,6 +67,7 @@ type
class procedure CutToClipboard(const AWinControl: TWinControl); override;
class procedure CopyToClipboard(const AWinControl: TWinControl); override;
class procedure PasteFromClipboard(const AWinControl: TWinControl); override;
class function CanPasteFromClipboard(Const AWinControl: TWinControl): boolean; override;
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND; override;
class function GetTextAttributes(const AWinControl: TWinControl; TextStart: Integer;
@ -422,6 +423,12 @@ begin
SendMessage(AWinControl.Handle, WM_PASTE, 0,0);
end;
class function TWin32WSCustomRichMemo.CanPasteFromClipboard(
const AWinControl: TWinControl): Boolean;
begin
Result:=Assigned(AWinControl) and (SendMessage(AWinControl.Handle, EM_CANPASTE, 0, 0)<>0);
end;
class function TWin32WSCustomRichMemo.CreateHandle(const AWinControl: TWinControl;
const AParams: TCreateParams): HWND;
var

View File

@ -54,6 +54,7 @@ type
class procedure CutToClipboard(const AWinControl: TWinControl); virtual;
class procedure CopyToClipboard(const AWinControl: TWinControl); virtual;
class procedure PasteFromClipboard(const AWinControl: TWinControl); virtual;
class function CanPasteFromClipboard(const AWinControl: TWinControl): Boolean; virtual;
class function GetStyleRange(const AWinControl: TWinControl; TextStart: Integer; var RangeStart, RangeLen: Integer): Boolean; virtual;
class function GetTextAttributes(const AWinControl: TWinControl; TextStart: Integer;
@ -134,6 +135,12 @@ begin
end;
class function TWSCustomRichMemo.CanPasteFromClipboard(
const AWinControl: TWinControl): Boolean;
begin
Result := true;
end;
class function TWSCustomRichMemo.GetStyleRange(const AWinControl: TWinControl;
TextStart: Integer; var RangeStart, RangeLen: Integer): Boolean;
begin