グリッドのセル幅をカラム数によって決定するために
次のようにしました。
しかし、これだと縦スクロールバーの幅が入っていないため??に、
表示すると、横スクロールバーが表示されてしまいます。
下の例で、もう一度Button1をクリックすると横スクロールバーが消えて
再表示されますが、最初から横スクロールバーを表示させないで表示
させる方法はなでしょうか?(縦スクロールバーの幅がわかれば
下記の計算式の中に含めてできるような気がしますが。)
他の方法でも構いませんが、なにか方法があれば教えていただけないでしょうか。
ちなみに、下記の式を Grid1DrawCell 内で書いたら、横スクロールバーは
なくなるのですが、画面がちらつき表示になってしまいました。
説明がうまくできなくてすみません。
例)
procedure TForm1.Button1Click(Sender: TObject);
:
:
zGrWidth := (Grid1.ClientWidth - Grid1.GridLineWidth * Grid1.ColCount) div Grid1.ColCount;
//幅設定
Grid1.DefaultColWidth := zGrWidth;
なんかよくわかりませんが、GetSystemMetricsを使うのは
どうでしょう?
Label3.Caption := IntToStr(GetSystemMetrics(SM_CXVSCROLL));
ツイート | ![]() |