Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Code optimieren für FileOpenDialog und OpenTextFileDialog
GerhardS - Mo 28.09.09 20:56
Titel: Code optimieren für FileOpenDialog und OpenTextFileDialog
Hallo,
in D2009 kann man zum Öffnen einer Datei zwischen FileOpenDialog (für Vista+) und OpenTextFileDialog (für XP) wählen. Die Unterschiede sind marginal. Was kann ich tun, um den Code nicht doppelt hinzuschreiben? Mir schwebt etwas in der Art vor:
Quelltext
1: 2: 3: 4: 5:
| if Is60plus //WinNT 6.0 oder höher, Code ist bekannt then x := FileOpenDialog1 else x:= OpenTextFileDialog1; x.Title := 'Der Titel'; // und alle weiteren identischen Eigenschaften |
Gibt dafür eine Lösung?
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 28.09.2009 um 21:56
Mitmischer 1703 - Di 29.09.09 15:15
Du kannst die GetVersionEx-Function verwenden
Ungetestet, müsste aber gehen:
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure GetOS; var test : _OSVERSIONINFOEXW; begin GetVersionEx(test); end; |
Und in test stehen u. a. folgende Information : Die Major/Minor-Version des OS, die Build-Nummer des OS, SP-Version.. und wProductType -> da steht das OS drin. Das ließt du dann entweder so
http://msdn.microsoft.com/en-us/library/ms724358%28VS.85%29.aspx oder so
http://msdn.microsoft.com/en-us/library/ms724451%28VS.85%29.aspx aus (Guck mal unter Remarks)
Laut msdn gibt es dann noch die GetProductInfo-Funktion. In der Realität leider nicht :)
GerhardS - Di 29.09.09 21:25
Meine Frage geht in eine andere Richtung: ich möchte wissen, ob es eine Möglichkeit gibt, FileOpenDialog und OpenTextFileDialog gemeinsam zu steuern. Die Information, unter welcher Windows-Version meine Anwendung läuft, gibt mir TOSVersionInfo.
Boldar - Di 29.09.09 22:44
strg+C sollte doch kein problem sein, in verbindung mit STRG+V braucht man dann nicht mehrmals tippen.
GerhardS - Mi 30.09.09 12:09
Weil FileOpenDialog nicht unter WinXP läuft, sondern erst ab Vista, während OpenTextFileDialog unter WinXP läuft. Leider haben die beiden Dialoge auch plattformspezifische Eigenschaften, so dass man mit STRG-C nicht sehr weit kommt. Mir geht es vor allem darum, schlanken Code zu schreiben (und ich vermute, dass sich WinXP noch mehrere Jahre hält).
Tryer - Mi 30.09.09 18:47
Eine Wrapper - Klasse welche die benötigten gleichen Eigenschaften bereitstellt und (intern) den passenden Dialog erzeugt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!