16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"StringGrid に Focusがないときの反転色"
この発言に対し以下のコメントが寄せられています
#00600 yone さん TStringGridに HideSelection追加
■説明
通常 StringGrid がアクティブではないときに選択されているセルが
反転色で表示されますが、それを消すサンプルです。(MES 15 #4,#85,
#106 を参照。)
Form1 に StringGrid1 と Focus を受け取ることができる別のコント
ロールを適当に配置して下さい。
■サンプルコード
//=====================================================================
{...略...}
implementation
{$R *.DFM}
var
Flg : Boolean; //アクティブであるときに矩形選択ができるように
//Focus が他に移るときかどうかを区別するため
procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Integer;
Rect: TRect; State: TGridDrawState);
begin
with TStringGrid( Sender ).Canvas do
begin
if Flg and ( gdSelected in State ) then //Focus が他へ移る時で
begin //かつ、選択状態のセル
Brush.Color := TStringGrid( Sender ).Color;
Font.Color := TStringGrid( Sender ).Font.Color;
end;
FillRect( Rect );
OffSetRect( Rect, 0, 2 ); //文字描画位置の調整
DrawText( Handle, PChar( TStringGrid( Sender ).Cells[ Col, Row ] ),
-1, Rect, DT_CENTER );
end; //ここでセル内の文字列描画位置を指定します______/~~~~~~~~~
end; //API のヘルプ、DrawText を参照して下さい
procedure TForm1.StringGrid1Enter(Sender: TObject);
begin
Flg := False;
end;
procedure TForm1.StringGrid1Exit(Sender: TObject);
begin
Flg := True;
end;
{...略...}
//=====================================================================
97/10/19(Sun) 18:55 Fermion [KHF03264]
Original document by Fermion 氏 ID:(KHF03264)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|