2013-03-18 70 views
-1

如何用Delphi XE2顯示Windows版本的信息? 我已經在「使用」添加「System.SysUtils」,然後寫了下面的代碼:的Windows版本信息

Edit1.Text :=TOSVersion.ToString; 
Edit2.Text :=TOSVersion.Name; 

上面的代碼編譯成功。但下面的代碼不能編譯。

Edit3.Text :=TOSVersion.Build; 
Edit4.Text :=TOSVersion.Major; 
Edit5.Text :=TOSVersion.Minor; 
Edit6.Text :=TOSVersion.ServicePackMajor; 
Edit7.Text :=TOSVersion.ServicePackMinor; 
Edit8.Text :=TOSVersion.TArchitecture; 
Edit9.Text :=TOSVersion.Platform; 

我的要求是隻顯示Windows本機信息。我不需要任何格式。

回答

4

所有未編譯場都是整數/枚舉,但你試圖將它們分配爲,是基於字符串的屬性。您需要將它們格式化爲字符串,例如:

const 
    ArchitectureStr: array[TOSVersion.TArchitecture] of string = ('Intel X86', 'Intel X64'); 
    PlatformStr: array[TOSVersion.TPlatform] of string = ('Windows', 'MacOS'); 

... 

Edit3.Text := IntToStr(TOSVersion.Build); 
Edit4.Text := IntToStr(TOSVersion.Major); 
Edit5.Text := IntToStr(TOSVersion.Minor); 
Edit6.Text := IntToStr(TOSVersion.ServicePackMajor); 
Edit7.Text := IntToStr(TOSVersion.ServicePackMinor); 
Edit8.Text := ArchitectureStr[TOSVersion.Architecture]; 
Edit9.Text := PlatformStr[TOSVersion.Platform]; 
+0

但問題在於「Edit2.Text:= TOSVersion.Name;」在Win8的情況下只顯示爲「Windows」。請給出任何決議。 – 2013-03-24 15:40:51

+0

'TOSVersion.Name'默認爲只是'「視窗」'一個未知的操作系統版本。因此,您正在使用尚未更新'TOSVersion'來識別Win8的RTL。 – 2013-03-25 20:45:48