掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
StringGridで固定セルをクリックするには (ID:28766)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Canvas.Brush.Color := clBtnFace; Canvas.Brush.Style := bsSolid; DC := Canvas.Handle; if aDown then begin DrawEdge(DC, cellsRect, BDR_SUNKENINNER, BF_TOPLEFT); DrawEdge(DC, cellsRect, BDR_SUNKENOUTER, BF_BOTTOMRIGHT); Dec(cellsRect.Bottom); Dec(cellsRect.Right); Inc(cellsRect.Top); Inc(cellsRect.Left); DrawEdge(DC, cellsRect, BDR_SUNKENOUTER, BF_TOPLEFT or BF_MIDDLE); end ですが BF_MIDDLE を入れると DrawCell 等で FixedCell に色を付けていても それを無視して描画してしまうようです。 Canvas.Brush.Color 等も無視されるみたいです (設定した色で描画されない) 凹んだ様に見せるには DC := Canvas.Handle; if aDown then begin DrawEdge(DC, cellsRect, BDR_SUNKENINNER, BF_RECT); end; のみで十分なようです また MouseToCelはTStringGrid 外(左と上のみ)にマウスが移動した際 0 0 を返す様で procedure TXpGrid.MouseMove(Shift: TShiftState; X, Y: Integer); var mCol,mRow: Longint; begin inherited MouseMove(Shift, X, Y); if FBtnDown then begin MouseToCell(X, Y, mCol, mRow); DrawCellBtn(FMouseDownCol, FMouseDownRow, (mCol = FMouseDownCol) and (mRow = FMouseDownRow)); end; end; で mCol = FMouseDownCol と mRow = FMouseDownRow のみでは FixedCell を Downした状態で そのまま StringGrid からカーソルが離れると 見た目が Downしたままになってしまいます。 条件に X>0 と Y>0 を追加すれば StringGrid からカーソルが離れた場合 FixedCellが凹んだ状態で表示されるようになります BDS 2006 + XP
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.