Einzelnen Beitrag anzeigen

e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
156 Beiträge
 
Delphi 6 Enterprise
 
#1

FormStyle "resetet" ShellTreeView

  Alt 17. Nov 2009, 09:44
Hallo,

um mehrere Dateien in einem Verzeichnis umzubenennen schrieb ich ein kleines Programm, wobei unter anderem ein ShellTreeView verwendet wird. Es funktioniert auch alles ganz prima. Allerdings stellte sich bei der Arbeit mit dem Programm heraus, dass es manchmal ganz brauchbar wäre das Fenster vor allen anderen Fenstern anzuzeigen (StayOnTop), in anderen Situationen hingegen nicht. Dafür bietet sich natürlich eine Checkbox auf der Form an, die mit der Eigenschaft FormStyle gekoppelt wird.

Delphi-Quellcode:
if CheckBox1.Checked then Form1.FormStyle:= fsStayOnTop
else Form1.FormStyle:= fsNormal;
Dabei stieß ich jedoch auf ein Problem: Immer wenn zur Laufzeit FormStyle geändert wird, kollabieren sämtliche Knoten des ShellTreeView und der Desktop wird angezeigt, was natürlich mitten in der Arbeit sehr nervig ist.
In der Delphi-Hilfe (Delphi 6.0) steht ein Hinweis, dass der Wert von FormStyle nicht zur Laufzeit geändert werden sollte. Hat das damit zu tun? Kennt jemand einen Trick diesen Reset von ShellTreeView zu verhindern? (ShellTreeView1.Path würde zwar den aktuellen Pfad wieder herstellen, nicht aber die anderen bereits geöffneten Knoten!) Oder wie kann man ein zur Laufzeit ein- und ausschaltbares "StayOnTop" sonst noch verwirklichen?

Gruß
e-gon
  Mit Zitat antworten Zitat