封装 TMemo、TDBMemo 控件(支持 Ctrl+A 全选功能)解决方案
封装 TMemo、TDBMemo 控件(支持 Ctrl+A 全选功能)
封装 TMemo、TDBMemo 控件(支持 Ctrl+A 全选功能)
在KeyDown事件中
if (Key = 65) and (Shift = [ssCtrl]) then
(Sender as TCustomMemo).SelectAll;
这个是最基本的,小弟搞了快1年delphi了,
第一次要封装控件。
大家给点提示或者代码,谢谢!
------解决方案--------------------
拦截他的WM_KEYDOWN就行了!
------解决方案--------------------
unit MemoExU;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TMemoEx = class(TMemo)
private
protected
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
public
{ Public declarations }
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents( 'Samples ', [TMemoEx]);
end;
{ TMemoEx }
{ TMemoEx }
procedure TMemoEx.KeyDown(var Key: Word; Shift: TShiftState);
begin
inherited;
if (Key = 65) and (Shift = [ssCtrl]) then SelectAll;
end;
end.
这样试试!
封装 TMemo、TDBMemo 控件(支持 Ctrl+A 全选功能)
在KeyDown事件中
if (Key = 65) and (Shift = [ssCtrl]) then
(Sender as TCustomMemo).SelectAll;
这个是最基本的,小弟搞了快1年delphi了,
第一次要封装控件。
大家给点提示或者代码,谢谢!
------解决方案--------------------
拦截他的WM_KEYDOWN就行了!
------解决方案--------------------
unit MemoExU;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TMemoEx = class(TMemo)
private
protected
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
public
{ Public declarations }
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents( 'Samples ', [TMemoEx]);
end;
{ TMemoEx }
{ TMemoEx }
procedure TMemoEx.KeyDown(var Key: Word; Shift: TShiftState);
begin
inherited;
if (Key = 65) and (Shift = [ssCtrl]) then SelectAll;
end;
end.
这样试试!