StringGridで、複数行に対してフォーカスをあてるには?

解決


ADO  2007-08-25 04:10:39  No: 27520

いつもお世話になっております

環境:Delphi2007  DB-Oracle10g

StringGridで、複数行に対してフォーカスをあてることはできますでしょうか?

望む動作としては、

-----------------------------------------------------------------
|1〜6列      |7列目 |8列目 |9列目 |…
-----------------------------------------------------------------
|  結  |  結  |          |  結  |  001  |  002  |  003  |  |
       |      |          |      |--------------------------------
|  合  |  合  |   …     |  合  |  004  |  005  |  006  |  |
       |      |          |      |--------------------------------
|  1  |  2  |          |  6  |  007  |  008  |  009  |  |
-----------------------------------------------------------------

上記のようなにグリッドが表示されている状態で、1〜3行目にまるまる
フォーカスをあてたいと考えています。

フォーカスをあてるというよりは、複数行を一行として扱えるのかに近いかと
思いますが、宜しくお願いします。


HOta  2007-08-25 18:48:30  No: 27521

OnDrawCellイベントで3行を書き直せばできます。


ADO  2007-10-23 20:38:32  No: 27522

返事が大変遅くなり申し訳ありません。

一応、解決しましたのでソースだけ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に変更を加えて対処しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加