SCROLLBOXの挙動について


あそう  2009-05-28 08:18:55  No: 34545  IP: [192.*.*.*]

ScrollBoxに、Scrollboxの表示サイズよりも十分大きなTImageを貼り付け、スクロール可能な状態にする。
フォームを開いたときに、TImageの任意の点がクライアント領域の中央に来るように縦横それぞれのScrollBar.Positionを変更したい。

ということで、例えば、imageのサイズが縦横1000×2000ピクセル、ScrollBarのRangeもimageのサイズと同じ場合、

HorzScrollBar.Position := 500;
VertScrollBar.Position := 1000;

とすればちょうど中央に表示されそうに思うのですが、なぜかいつも全然違う同じ場所しか表示されません。

なにかコツがあるのでしょうか。

編集    削除
ttt  2009-05-28 08:32:26  No: 34546  IP: [192.*.*.*]

コントロールの座標系の原点はあくまで左上隅なので、
それだとimageの中央がスクロール領域の左上にくるように設定していることになりますね。
さらにScrollBoxのサイズの半分を引いてみたらどうですか?

編集    削除