【发布时间】:2023-03-13 11:03:01
【问题描述】:
我正在开发一个键盘挂钩并使用 SetWindowsHookEx,并将每个击键添加到 TStringList 中。为了操作 TStringList 中的击键,我总是使用“.Text”属性。例如,要添加键入的击键,我使用:
KeyStrokes.Text:= KeyStrokes.Text + AChr;
如果我检测到 [backspace],我会尝试使用以下方法删除 StringList 中的最后一个字符:
KeyStrokes.Text := Copy(KeyStrokes.Text, 1, length(KeyStrokes.Text) - 1);
当我使用相同的“.Text”属性在 TMemo 中添加时,所有这些都正常工作。但是自从我放入 TStringList 时,在保存的 Log.txt 文件中(使用 .SaveToFile 属性)我得到的日志是这样的:
H
E
L
L
哦
而不是“你好”。我尝试了“.Append”、“.Add”属性,但总是一样。当然,删除最后一个字母的退格键不再起作用......如何正确输入击键?这甚至可以在 TStringList 中做到吗?
【问题讨论】:
-
如果 String 不超过一个,为什么还要使用 StringList?
-
我们说的是什么版本的 Delphi?
-
Delphi 2010...关于使用简单字符串变量的问题只是在下面的其他答案中评论...
标签: delphi