请教各位高手 怎样屏蔽掉Memo控件的键盘事件
请教各位高手 怎样屏蔽掉Memo控件的键盘事件 问题点数:0、回复次数:10Top
1 楼xiaosq2008(挂在空中的鱼)回复于 2004-04-04 08:58:14 得分 0
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
key:=#0;
end;Top
2 楼SydPink(Miss Syd.Barrett)回复于 2004-04-04 09:16:58 得分 0
那何不如用STRINGLIST+N个LABEL,或者用STRINGLIST管理,用PAINTBOX之类的来显示算了.
还可以把字符画的很精彩,是不?呵呵.反正没键盘时间,没输入.Top
3 楼SydPink(Miss Syd.Barrett)回复于 2004-04-04 09:52:38 得分 0
Memo.readonly:=true;?????????Top
4 楼aiirii(ari-http://spaces.msn.com/members/aiirii/)回复于 2004-04-04 09:59:53 得分 0
Memo1.ReadOnly := true;
or
Memo1.Enabled := false;Top
5 楼godnoloveihavelove(快感)回复于 2004-04-04 15:58:44 得分 0
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
key:=chr(0);
end;Top
6 楼hunterht(核桃II--俺就是核桃的马甲,俺也要星星)回复于 2004-04-04 16:53:09 得分 0
屏蔽键盘事件?那鼠标事件呢?呵呵
如果是只读,则设置ReadOnly,如果要禁用,则Enabled := False;Top
7 楼MDS2004(xuyan)回复于 2004-04-05 10:05:32 得分 0
鼠标可以操作,但是键盘不能响应。Top
8 楼linjie208(御风而行)回复于 2004-04-05 18:37:36 得分 0
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
key:=#0;
end;Top
9 楼SydPink(Miss Syd.Barrett)回复于 2004-04-05 18:47:38 得分 0
还不满意啊?????那就是你说的清楚了。。
我看这个样子吧。。。
TMyMemo=class(TMemo)
protected
procedure WndProc(Var Msg:TMessage);override;
........
TMyMemo.WndProc(var Msg:Tmessage);
begin
if Msg.Message=WM_KEYXXXXX
//在这里判断所有的键盘消息,,不做任何动作。你看行不行?????
end;Top
10 楼cybercake(数字蛋糕)回复于 2004-04-08 20:16:26 得分 0
其实也不一定要自己写控件,省事一些:
TForm1=class(TForm)
protected
OldMemoWndProc : TWndMethod;
procedure NewMemoWndProc(Var Msg:TMessage);override;
public
constructor Create(AOwner : TComponent); override;//用OnCreate事件也行
........
end;
constructor Create(...);
begin
inherited;
OldMemoWndProc := Memo1.WindowProc;
Memo1.WindowProc := NewMemoWndProc;
end;
TForm1.NewMemoWndProc(var Msg:Tmessage);
begin
if Msg.Message=WM_KEYXXXXX then ...
else OldMemoWndProc(Msg);
end;Top




