You've already forked lazarus-ccr
richmemo: efficient way of setting attributes
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4377 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -72,6 +72,11 @@ type
|
||||
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND; override;
|
||||
class function GetTextAttributes(const AWinControl: TWinControl; TextStart: Integer;
|
||||
var Params: TIntFontParams): Boolean; override;
|
||||
|
||||
class function isInternalChange(const AWinControl: TWinControl; Params: TTextModifyMask): Boolean; override;
|
||||
class procedure SetTextAttributesInternal(const AWinControl: TWinControl; TextStart, TextLen: Integer;
|
||||
const AModifyMask: TTextModifyMask; const Params: TIntFontParams); override;
|
||||
|
||||
class procedure SetTextAttributes(const AWinControl: TWinControl; TextStart, TextLen: Integer;
|
||||
const Params: TIntFontParams); override;
|
||||
class procedure SetHideSelection(const ACustomEdit: TCustomEdit; AHideSelection: Boolean); override;
|
||||
@@ -583,6 +588,37 @@ begin
|
||||
RichEditManager.SetEventMask(AWinControl.Handle,eventmask);
|
||||
end;
|
||||
|
||||
class function TWin32WSCustomRichMemo.isInternalChange(
|
||||
const AWinControl: TWinControl; Params: TTextModifyMask): Boolean;
|
||||
begin
|
||||
Result:=True;
|
||||
end;
|
||||
|
||||
class procedure TWin32WSCustomRichMemo.SetTextAttributesInternal(
|
||||
const AWinControl: TWinControl; TextStart, TextLen: Integer;
|
||||
const AModifyMask: TTextModifyMask; const Params: TIntFontParams);
|
||||
var
|
||||
OrigStart : Integer;
|
||||
OrigLen : Integer;
|
||||
eventmask : longword;
|
||||
NeedLock : Boolean;
|
||||
begin
|
||||
eventmask := RichEditManager.SetEventMask(AWinControl.Handle, 0);
|
||||
RichEditManager.GetSelection(AWinControl.Handle, OrigStart, OrigLen);
|
||||
|
||||
NeedLock := (OrigStart <> TextStart) or (OrigLen <> TextLen);
|
||||
if NeedLock then begin
|
||||
LockRedraw( TCustomRichMemo(AWinControl), AWinControl.Handle);
|
||||
RichEditManager.SetSelection(AWinControl.Handle, TextStart, TextLen);
|
||||
RichEditManager.SetSelectedTextStyle(AWinControl.Handle, Params, True, AModifyMask);
|
||||
RichEditManager.SetSelection(AWinControl.Handle, OrigStart, OrigLen);
|
||||
UnlockRedraw( TCustomRichMemo(AWinControl), AWinControl.Handle);
|
||||
end else
|
||||
RichEditManager.SetSelectedTextStyle(AWinControl.Handle, Params, True, AModifyMask);
|
||||
|
||||
RichEditManager.SetEventMask(AWinControl.Handle, eventmask);
|
||||
end;
|
||||
|
||||
|
||||
class procedure TWin32WSCustomRichMemo.SetHideSelection(
|
||||
const ACustomEdit: TCustomEdit; AHideSelection: Boolean);
|
||||
|
Reference in New Issue
Block a user