>>492 :ScrollBoxをカーソルキーでスクロール

507 でレスしたものです。

>なんでホィールでScrollBox動かせるのに、カーソルキーやPageUp
>Downキーで、動かせないのかな?と。

ホイールはスクロール専用の入力デバイスです。キーデバイスは、
スクロールとは本来無関係ですから、キー入力でスクロールするため
には、プログラマがコードで関連付けなくてはなりません。

矢印キーで ScrollBox をスクロールするのは、フォーカスの移動
があるため、思ってたより難しいですね。フォーカスの移動を防ぐ
ために、Application.OnMessage でキー入力を処理するとうまくい
きます。以下のコードでは、ScrollBox1 には Image1 があって、
TAB キーで、または、マウスでクリックするとフォーカスが
ScrollBox1 に移動して Label1 が赤色になります。このとき、矢印
キーで ScrollBox1 をスクロールできます。試してみてください。


type
 TForm1 = class(TForm)
  ScrollBox1: TScrollBox;
  Image1: TImage;
  Button1: TButton;
  Edit1: TEdit;
  Label1: TLabel;
  procedure FormCreate(Sender: TObject);
  procedure ScrollBox1Enter(Sender: TObject);
  procedure ScrollBox1Exit(Sender: TObject);
 private
  { Private 宣言 }
 public
  procedure AppMessage(var Msg:TMsg; var Handled:Boolean);
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}