過去ログにあったのですが、答えがみつけられなかったので、質問させて頂きます。
どうぞ情報を持っている方ご教授下さい。よろしくお願いします。
“プログラムで消す”ではありませんが、
DefaultDrawing プロパティをFalseにして、
OnDrawCell イベントで、グリッド内のすべてのセルの内容を描画する
のはどうですか?
こんな感じ?外してたらごめんなさい。
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
with TStringGrid(Sender) do
begin
if not (gdFixed in State) then
Canvas.Brush.Color := clWindow;
if Focused then
if gdSelected in State then
Canvas.Brush.Color := clHighlight;
Canvas.FillRect(Rect);
end;
end;
>DefaultDrawing プロパティをFalseにして、
>OnDrawCell イベントで、グリッド内のすべてのセルの内容を描画する
この方法より、
通りすがお さん が提示した方法のほうが簡単でしたね。
>if Focused then
> if gdSelected in State then
> Canvas.Brush.Color := clHighlight;
こうのほうがすっきりしましたね。
if (gdFocused in State) and (gdSelected in State) then
Canvas.Brush.Color := clHighlight;
質問者は、”アプリの起動時だけは最初のセルの紺色反転をさせたくない”
ということじゃないのかな?
もしそうなら、これだけでOK。
procedure TForm1.FormShow(Sender: TObject);
begin
StringGrid1.SetFocus;
end;
igy様 通りすがお様 ん?様 ありがとうございます。無事解決しました(^-^。
ツイート | ![]() |