3

ユーザーが Ctrl+End を押すと、VirtualStringTree は垂直方向の末尾にジャンプしますが、水平方向にも問題ありません。横に最後まで行きたくない。横スクロールはそのまま。

これを伝える方法は?

4

1 に答える 1

5

次のコードのOnKeyActionハンドラーは、CTRL + HOMEまたはCTRL + ENDが押されているかどうかを確認し、押されている場合は、押された内容に応じて上または下に (垂直方向にのみ) スクロールします。

procedure TForm1.VirtualTreeKeyAction(Sender: TBaseVirtualTree;
  var CharCode: Word; var Shift: TShiftState; var DoDefault: Boolean);
begin
  if (ssCtrl in Shift) then
  case CharCode of
    VK_HOME:
    begin
      DoDefault := False;
      VirtualTree.ScrollIntoView(VirtualTree.GetFirst, False);
    end;
    VK_END:
    begin
      DoDefault := False;
      VirtualTree.ScrollIntoView(VirtualTree.GetLast, False);
    end;
  end;
end;
于 2012-04-14T08:19:19.970 に答える