use*_*395 3 delphi pascal custom-component
我使用Gecko SDK,这是一个允许您查看网页的组件.
我使用这个组件来创建一个html编辑器.
关闭编辑网页时会发生此问题.
问题是箭头键和选项卡不适用于我的组件.我试图找到这个问题的答案,但我找不到.我在这里找到了一个曲目,但功能不起作用.
功能Movement (dx, dy)
不存在.谢谢你帮我解决这个问题.
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;
Run Code Online (Sandbox Code Playgroud)
将其添加到组件的类中:
procedure HandleDlgCode(var Msg:TMessage); message WM_GETDLGCODE;
Run Code Online (Sandbox Code Playgroud)
然后在实施部分:
procedure TComponentClass.HandleDlgCode(var Msg:TMessage);
var
M: PMsg;
begin
Msg.Result := DLGC_WANTALLKEYS or DLGC_WANTARROWS or DLGC_WANTCHARS or DLGC_HASSETSEL;
if Msg.lParam <> 0 then
begin
M := PMsg(Msg.lParam);
case M.message of
WM_KEYDOWN, WM_KEYUP, WM_CHAR:
begin
Perform(M.message, M.wParam, M.lParam);
Msg.Result := Msg.Result or DLGC_WANTMESSAGE;
end;
end;
end
else
Msg.Result := Msg.Result or DLGC_WANTMESSAGE;
end;
Run Code Online (Sandbox Code Playgroud)
我只是从我自己的数字编辑器中复制粘贴此代码,因此它可以工作.
归档时间: |
|
查看次数: |
1553 次 |
最近记录: |