|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"拡張 ScrollBar コンポーネント"
Windows95 などでは、スクロールバーの Thumb ボタン(現在の表示位置を
知らせるつまみのようなボタン)の大きさが変えられるようになっています。
しかし、Delphi の 標準コンポーネントとして用意されている ScrollBar
は、いまだに 大きさ一定 のものしか用意されていません。
そこで、Windows API を使って、Thumb ボタンの大きさを変えられるように
したコンポーネントをこさえてみました。Thumb ボタンの大きさをあらわすパ
ラメータは、Page というパラメータです。0だと通常の大きさになります。
使い方は、下記のファイルを ScrollBarEx.pas という名前で保存し、コン
ポーネントとしてインストールして下さい。
=====================================================================
unit ScrollBarEx;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TScrollBarEx = class(TScrollBar)
private
function GetPage : integer;
procedure SetPage( a : integer );
published
propertyPage : integer read GetPage write SetPage;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Sample', [TScrollBarEx]);
end;
//================================================================
function TScrollBarEx.GetPage : integer;
var
X : TScrollInfo;
begin
X.cbSize := sizeof(TScrollInfo);
X.fMask := SIF_PAGE;
if HandleAllocated then
GetScrollInfo(Handle, SB_CTL, X );
Result := X.nPage;
end;
procedure TScrollBarEx.SetPage( a : integer );
var
X : TScrollInfo;
begin
X.cbSize := sizeof(TScrollInfo);
X.fMask := SIF_PAGE;
X.nPage := a;
if HandleAllocated then
SetScrollInfo(Handle, SB_CTL, X, TRUE );
end;
end.
=====================================================================
Mata / Masahiro MATAYOSHI
from Okinawa, Ginowan city
97/11/22(Sat) 01:26am
Original document by Mata 氏 ID:(GHE04400)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|