TTreeViewについて1点質問させてください。
TTreeViewの内容により、スクロールバーが自動的に出たり隠れたりしま
すが、横スクロールバーは常に隠しておきたいと思いました。消すタイ
ミングはOnAdditionなどのイベントで対応することとして、消すこと自
体はどのように行えばよいのでしょうか。
TListBoxの場合は下のようなコードで隠れることは確認できました。
同じようなメッセージがあるのでしょうか。
ListBox1.Perform (LB_SETHORIZONTALEXTENT, 0, 0);
こんな感じでスタイルに TVS_NOHSCROLL を追加するとよいようです。
const
TVS_NOHSCROLL = $8000;
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(TreeView1.Handle,GWL_STYLE,
GetWindowLong(TreeView1.Handle,GWL_STYLE) + TVS_NOHSCROLL);
end;
回答どうもありがとうございます。
先ほど提示いただいたコードの動作を確認してみました。
ですが、横スクロールバーは確かに動かなくなったものの、
相変わらず表示されたままでした。
http://lukewarm.s101.xrea.com/misc/Styles.html
キーワードを元にこのページを探り当て、内容を見てみた
のですが、このページの説明でも確かに
「The control will not display any horizontal scroll bars.」
とは書いてあります。
Delphi6 Personal + WinXP Homeのよくある環境ですし、
環境による問題とは思えないのですが、他に何か必要な操作
があるのでしょうか。
ちょっと試しただけですが、これでいけると思います。
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowScrollBar(TreeView1.Handle, SB_HORZ , False);
end;
不具合あったらレポートプリーズ
返事が遅れてしまい,申し訳ありません。
もにゃ様の提示くださったコードを試したところ,うまくいきました。
本当に助かります。ありがとうございました。