在OnKeypress事件中,您可以检查某些键并按照您的意愿处理它们.enter键是这些键之一.
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
const
ENTER = #13;
begin
case Key of
ENTER : begin
// Do something
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
默认情况下,TMemo将WantReturns属性设置为TRUE.这意味着,除了您可能在代码中实现的对按键的任何响应之外,TMemo仍将接收键事件并在备忘录的内容中添加新行.
如果您不想要这个,那么您可以:
要么
后一种方法的一个例子可能如下所示:
const
NO_KEY = #0;
ENTER = #13;
begin
case Key of
ENTER : begin
// Do something
if NOT AddNewLine then
Key := NO_KEY;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
注意:所述的的OnKeyPress唯一事件可用于关键事件的子集反应,尤其是那些对应于CHAR类型值(尽管这确实包括一些非打印字符,如标签和退格键,例如).
如果您想要或需要检测更多范围的非字符键的状态或可靠地处理键组合(如Ctrl + Key或Shift + Key),则需要查询这些修饰键的状态.但是,当您响应键事件时,修改键的状态可能已更改,在这种情况下更好的方法是使用备用事件,该事件提供更大范围的键事件,包括Shift的状态键事件本身时的键(和控制键),例如OnKeyDown.
| 归档时间: |
|
| 查看次数: |
3031 次 |
| 最近记录: |