いつもお世話になっております
環境:Delphi2007 DB-Oracle10g
StringGridで、複数行に対してフォーカスをあてることはできますでしょうか?
望む動作としては、
-----------------------------------------------------------------
|1〜6列 |7列目 |8列目 |9列目 |…
-----------------------------------------------------------------
| 結 | 結 | | 結 | 001 | 002 | 003 | |
| | | |--------------------------------
| 合 | 合 | … | 合 | 004 | 005 | 006 | |
| | | |--------------------------------
| 1 | 2 | | 6 | 007 | 008 | 009 | |
-----------------------------------------------------------------
上記のようなにグリッドが表示されている状態で、1〜3行目にまるまる
フォーカスをあてたいと考えています。
フォーカスをあてるというよりは、複数行を一行として扱えるのかに近いかと
思いますが、宜しくお願いします。
OnDrawCellイベントで3行を書き直せばできます。
返事が大変遅くなり申し訳ありません。
一応、解決しましたのでソースだけUPしておきます。
//選択行のハイライト表示
if ACol >= 0 then
begin
if (ARow in [1..2]) and (Selection.Top in [1..2]) then
begin
Canvas.Brush.Color := clHighlight;
Canvas.Font.Color := clHighlightText;
end
else if Selection.Top = ARow then
begin
Canvas.Brush.Color := clHighlight;
Canvas.Font.Color := clHighlightText;
end
else
begin
Canvas.Brush.Color := clWhite;
Canvas.Font.Color := clBlack;
end;
end;
※但し、スクロール時に不具合があります。
そちらに関しては、VCLに変更を加えて対処しました。
ツイート | ![]() |