モナーの *やさしい* Delphi質問スレ Ver.7
■ このスレッドは過去ログ倉庫に格納されています
0625デフォルトの名無しさん
NGNG507 でレスしたものです。
>なんでホィールで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}
■ このスレッドは過去ログ倉庫に格納されています