皆様、ご無沙汰でございます。
TStyleManagerを使って、フォームのスタイルを変えた際の
plExplorerFolderTreeのスクロールバーの挙動が変なので、
変えたいのですが・・・(^^;
スクロールバーの上下の矢印ボタンを押しても、スクロールエリアの部分を
押しても、もともとあった場所へ「つまみ」が戻ってしまって表示したい部分
を表示できません。
しかし、「つまみ」の部分をドラッグすると正常にスクロールできます。
マウスのホイールを回しても正常にスクロールできます。
あと、スタイルを標準の'Windows'に戻すと、正常に動作するようになります。
下に、実施したサンプルを記載します。
フォームにComboBoxを1個おいて実行してください。
plExplorerFolderTreeはPublicあたりに名前だけ宣言してください。
TStyleManagerを使って動的にスタイルを変更すると、
plExplorerFolderTreeは内容を表示しなくなるので、
しかたなく、動的に配置するようにしています。
家の環境の問題ってことはないと信じたい・・・(^^;
(Delphi10.2Tokyo + Windows10 Pro 64Bit)
procedure TForm1.ComboBox1Select(Sender: TObject);
begin
FreeAndNil(plExplorerFolderTree1);
TStyleManager.SetStyle(ComboBox1.Text);
// これを入れないとplExplorereFolderTreeが正常に動作しない
Application.ProcessMessages;
Application.ProcessMessages;
plExplorerFolderTree1 := TplExplorerFolderTree.Create(Form1);
plExplorerFolderTree1.Parent := Form1;
plExplorerFolderTree1.Align := alLeft;
plExplorerFolderTree1.RootFolder := '';
end;
procedure TForm1.FormCreate(Sender: TObject);
var styleName : String;
begin
ComboBox1.Clear;
for styleName in TStyleManager.StyleNames do
ComboBox1.Items.Add(styleName);
ComboBox1.Sorted := True;
plExplorerFolderTree1 := TplExplorerFolderTree.Create(Form1);
plExplorerFolderTree1.Parent := Form1;
plExplorerFolderTree1.Align := alLeft;
plExplorerFolderTree1.RootFolder := '';
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
plExplorerFolderTree1.Free;
end;
|