TrackBarについて質問があります。
TrackBarの背景に画像を使って見栄えを良くいしたいのですが
コンポーネントが見つからず、過去ログを検索し探したのですが見つからなかったので
この際、自分で作ってみようと思い勉強しつつチャレンジしています。
コンポーネントを作るのは初めてで、悪戦苦闘しています。
プロパティでbitmapを読み込みするところまでは出来たのですが、読み込んだ画像の表示の部分が出来ません。
paintはオーバーライド出来ないので、表示する為にどのような処理が必要なのでしょうか?
また、上位クラスのTTrackBarを他のクラスにしたほうがいいのでしょうか?
よろしくお願い致します。
unit PictureTrackBar;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls;
type
TPictureTrackBar = class(TTrackBar)
private
{ Private 宣言 }
FBitmap:Tbitmap;
procedure setbitmap(value:Tbitmap);
protected
{ Protected 宣言 }
public
{ Public 宣言 }
constructor create(aowner:Tcomponent);override;
destructor destroy;override;
published
{ Published 宣言 }
property bitmap:Tbitmap read Fbitmap write setbitmap;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('MyComp', [TPictureTrackBar]);
end;
{ TPictureTrackBar }
constructor TPictureTrackBar.create(aowner: Tcomponent);
begin
inherited create(aowner);
Fbitmap:=Tbitmap.Create;
end;
destructor TPictureTrackBar.destroy;
begin
Fbitmap.Free;
inherited destroy;
end;
procedure TPictureTrackBar.setbitmap(value: Tbitmap);
begin
Fbitmap.Assign(value);
end;
end.
まず、TTrackBar クラスのインスタンスが作るコントロールはウィンドウズの
コモンコントロールのトラックバーです。ですから、トラックバーの外観を
描いているのはウィンドウズです。Delphi の TTrackbar を継承しただけでは
外観をコントロールする事はできません。
ツイート | ![]() |