jpf*_*ius 3 delphi vcl delphi-xe
这里有很多类似的问题,但我找不到我的问题的答案.
我有一个TRichEdit
并且想要在用户按下时实现一些自定义行为Tab.我将富编辑的WantTabs
属性设置为True
并尝试添加我的自定义行为OnKeyDown
,这可以正常工作,但不幸的是,之后执行"正常"选项卡行为(在编辑中插入制表符).我尝试在事件处理程序中设置Key
,0
但这没有帮助.
如何防止"正常"选项卡行为被执行?
请改用OnKeyPress
事件:
procedure TForm1.RichEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = chr(VK_TAB) then
begin
beep;
Key := #0;
end;
end;
Run Code Online (Sandbox Code Playgroud)
或者,如果您确实需要使用该OnKeyDown
事件,只需删除关键信息:
procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
msg: TMsg;
begin
if Key = VK_TAB then
begin
beep;
while PeekMessage(msg, RichEdit1.Handle, WM_KEYFIRST, WM_KEYLAST,
PM_REMOVE) do;
end;
end;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1768 次 |
最近记录: |