Autor Beitrag
GerhardS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Mo 28.09.09 20:56 
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:

ausblenden 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 user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 28.09.2009 um 21:56
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Di 29.09.09 15:15 
Du kannst die GetVersionEx-Function verwenden

Ungetestet, müsste aber gehen:

ausblenden 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 msdn.microsoft.com/e...4358%28VS.85%29.aspx oder so msdn.microsoft.com/e...4451%28VS.85%29.aspx aus (Guck mal unter Remarks)

Laut msdn gibt es dann noch die GetProductInfo-Funktion. In der Realität leider nicht :)

_________________
Die Lösung ist nicht siebzehn.
GerhardS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: 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.
turboPASCAL
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP / Vischda
D6 PE / D2005 PE
BeitragVerfasst: Di 29.09.09 22:27 
Hi,

www.delphipraxis.net...st460691.html#460691

Also warum nicht FileOpenDialog ?

_________________
Nein, ich bin nicht der turboPASCAL aus der DP, ich seh nur so aus... :P
Boldar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Mi 30.09.09 12:09 
user profile iconturboPASCAL hat folgendes geschrieben Zum zitierten Posting springen:
Hi,

www.delphipraxis.net...st460691.html#460691

Also warum nicht FileOpenDialog ?

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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226
Erhaltene Danke: 7



BeitragVerfasst: Mi 30.09.09 18:47 
Eine Wrapper - Klasse welche die benötigten gleichen Eigenschaften bereitstellt und (intern) den passenden Dialog erzeugt.