私は 1 つの TEdit と 1 つの TButton を持つ 1 つのフォームを持っています。OS アーキテクチャを決定しようとしています。そのため、エンバカデロ フォーラムで提案されているように、次のコードを定義しました。
function OSArchitectureToStr(const a: TOSVersion.TArchitecture): string;
function OSPlatformToStr(const p: TOSVersion.TPlatform): string;
function PlatformFromPointer: integer;
.
.
.
.
.
function OSArchitectureToStr(const a: TOSVersion.TArchitecture): string;
begin
case a of
arIntelX86: Result := 'Intel X86';
arIntelX64: Result := 'Intel X64';
else
Result := 'UNKNOWN OS Aarchitecture';
end;
end;
function OSPlatformToStr(const p: TOSVersion.TPlatform): string;
begin
case p of
pfWindows: Result := 'Windows';
pfMacOS: Result := 'MacOS';
else
Result := 'UNKNOWN OS Platform';
end;
end;
function PlatformFromPointer: integer;
begin
Result := SizeOf(Pointer) * 8;
end;
.
.
.
.
.
procedure TMainForm.BitBtn1Click(Sender: TObject);
begin
Edit1.Text := OSPlatformToStr(TOSVersion.Platform) + ' ' + IntToStr(PlatformFromPointer) + ' Bit';
end;
しかし問題は、64Bit OSなのに常に32Bit OSになってしまうことです。私を助けてください。