箭头键在组件中不起作用
|
我使用Gecko SDK,该组件可让您查看网页。
我使用此组件来创建html编辑器。
关闭编辑网页时会发生此问题。
问题是箭头键和选项卡不适用于我的组件。我试图找到这个问题的答案,但是没有找到答案。我在这里找到了一个曲目,但是该功能不起作用。
功能“ 0”不存在。感谢您帮助我解决此问题。
Procedure Tform1.TraiteMessages(Var msg : TMsg; Var Handled: boolean);
var
dx, dy : integer;
begin dx: 0; dy := 0;
With msg do
begin
IF Message = WM_KEYDOWN then
Case wparam of
VK_LEFT : dx := -1;
VK_RIGHT : dx := 1;
VK_UP : dy := -1;
VK_DOWN : dy := 1;
end;
end;
IF (dy = 0) AND (Dx = 0) then Handled := false else
begin
handled := true; // message traité
Mouvement(dx, dy) // exécution du tracé
end;
end;
没有找到相关结果
已邀请:
3 个回复
屠创氓读叔
然后在实施部分中:
我只是从我自己的数字编辑器复制粘贴了此代码,因此它可以工作。
末钉蹈泰唬
实际上,您可以省去ѭ5并开始从事其他工作。 无需使用底层代码。您做的太复杂了。 获得有关delphi组件设计的书。即使对于较老的Delphi,也没有太大变化。 读一本有关该主题的书,每花费一小时即可节省20个小时的编码时间。 祝好运。
淑灯
这将清理您的方法...现在,您应该在IF语句上放置一个断点,并在Case条件上放置一个断点,以便首先确定是否曾经触发过消息挂钩,而且还要确定正在处理的消息是您自己会期望的。 您的组件是否正确捕获了关键事件?您是否还有其他视觉组件?您是否已将表单的\“ KeyPreview \”属性设置为True? 您可能还想尝试使用TApplicationEvents控件处理您的关键消息挂钩(如果您的组件不可见)。 看看我的SVN信息库中的这个单元(用户名和密码均为\“ anon \”,不带引号),因为它演示了如何即使在非可视组件上也可以拦截和处理键输入。 希望这会有所帮助,并祝你好运!