如何调试Ctrl+;未到达Delphi TEdit的C键盘消息

如何调试Ctrl+;未到达Delphi TEdit的C键盘消息,delphi,keyboard-events,messages,Delphi,Keyboard Events,Messages,当我在其他表单中嵌入表单时,该表单上的TEdit将失去使用Ctrl+C复制其文本的能力。Ctrl+V仍然有效,Ctrl-Ins(复制)和Shift+Ins(粘贴)也有效。当我单独使用表单时,例如modal,Ctrl+C可以很好地工作。因此,我相当肯定在嵌入表单的情况下,Ctrl+C在到达TEdit之前就已经被使用了,我检查了一下,我没有将其用作操作列表中的快捷方式。因此,为了更深入地挖掘,有人能告诉我一个观察Ctrl+C及其生存期的良好调试过程吗?可能是您正在使用的表单将keypreview设置

当我在其他表单中嵌入表单时,该表单上的TEdit将失去使用Ctrl+C复制其文本的能力。Ctrl+V仍然有效,Ctrl-Ins(复制)和Shift+Ins(粘贴)也有效。当我单独使用表单时,例如modal,Ctrl+C可以很好地工作。因此,我相当肯定在嵌入表单的情况下,Ctrl+C在到达TEdit之前就已经被使用了,我检查了一下,我没有将其用作操作列表中的快捷方式。因此,为了更深入地挖掘,有人能告诉我一个观察Ctrl+C及其生存期的良好调试过程吗?

可能是您正在使用的表单将keypreview设置为true,因此,表单句柄CTRL+C要回答您的问题,您可以使用Spy++在Application.ProcessMessage中的PeekMessage之后放置一个条件断点。嵌入表单是什么意思<代码>Form2.Parent:=Form1?我不相信有什么东西在消耗信息:根据我的经验,实际上似乎很难阻止信息到达主动控制。我发现的唯一可靠的方法是设置
Handled:=True。这就是为什么我要调查消息是否(以及为什么)没有被发送到正确的(聚焦的)控件。我可能会按照上面的建议调试TApplication.ProcessMessage。有可能提供吗?我尝试使用David H的代码在另一个表单中嵌入表单。这里:每当我尝试删除
BorderStyle:=bsNone
块时,我都会遇到问题(即使是鼠标单击)。不过,我不知道如何进一步调试。