お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
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