|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"フォーカス時の色設定可なDBEdit"
RTで話題が出たフォーカス時の色を設定できるTDBEditコンポの例です。
WMPaintで描画されているので、ここをoverRideできれば一番良いのですが、
privateですので、protectedに出ている DoEnter, DoExitで、Colorを差し替え
るという方法です。これじゃOnEnterとOnExitに書くのと違わないじゃんという
声が聞こえてきそうですが、まぁコンポの例として(^^;;
ちなみに、フォーカスがあたっているときにColorプロパティを参照すると当然
FocusedColorが返ってきます(^^;;
もっと良い案ありましたらよろしく、、、
unit DBEditEx;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, Mask, DBCtrls;
type
TDBEditEx = class(TDBEdit)
private
{ Private 宣言 }
FOrgColor,
FFocusedColor:TColor;
procedure setFocusedColor(const Value: TColor);
protected
{ Protected 宣言 }
public
{ Public 宣言 }
constructor Create(AOwner:TComponent);OverRide;
procedure DoEnter; OverRide;
procedure DoExit; OverRide;
published
{ Published 宣言 }
property FocusedColor:TColor read FFocusedColor write
setFocusedColor;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TDBEditEx]);
end;
{ TDBEditEx }
constructor TDBEditEx.Create(AOwner: TComponent);
begin
inherited;
FOrgColor:=Color;
FFocusedColor:=Color;
end;
procedure TDBEditEx.DoEnter;
begin
FOrgColor:=Color;
Color:=FFocusedColor;
inherited;
end;
procedure TDBEditEx.DoExit;
begin
Color:=FOrgColor;
inherited;
end;
procedure TDBEditEx.setFocusedColor(const Value: TColor);
begin
FFocusedColor := Value;
invalidate;
end;
end.
☆☆☆ かわいいコードにゃ旅をさせよう いざサンプル蔵へ!! ☆☆☆
99/06/06(日) 02:44 凛(MXB01744)
Original document by 凛 氏 ID:(MXB01744)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|