2013-03-18 75 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