0

form1.JvComputerInfoEx1.CPU.SSE 中的信息存储为 TSSESupports。我的问题是数据如何实际存储在 TSSESupports 中以及如何转换为纯字符串?

wiki 页面在这个问题上不是很有帮助。

4

1 回答 1

1

查看 JCL 源代码。

type 
  TSSESupport = (sse, sse2, sse3, ssse3, sse4A, sse4B, sse5); 
  TSSESupports = set of TSSESupport;

所以,TSSESupports 是一个集合。集合中的值按位存储。您可以测试一个值是否由“in”运算符设置。

var
  Value: TSSESupports;
begin
  if sse in Value then
    ShowMessage('Supports SSE');
end;

但是将集合转换为字符串的最简单方法是使用 RTTI 函数“SetToString”

uses System.TypInfo, JclSysinfo;

var
  Value: TSSESupports;
  pTI: PTypeInfo;
  S: string;
begin
  pTI := TypeInfo(TSSESupports);
  S := SetToString(pTI, Word(Value));
  ShowMessage(S);
end;
于 2016-03-14T16:29:43.250 回答