お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





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