unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,StdCtrls, CommDlg;type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  type
TOSVersion = (osUnknown, os95, os95OSR2, os98, os98SE, osNT3, osNT4, os2K, osME,
 osXP);var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var 
os:TosVersion; 
osVersion:string; 
begin
os:=Getos;
case OS of
os95, os95OSR2: OSVersion:='Windows 95';
os98: OSVersion:='Windows 98';
os98SE: OSVersion:='Windows 98 第二版';
osME: OSVersion:='Windows Millenium Edition';
osNT3, osNT4: OSVersion:='Windows NT';
os2K: OSVersion:='Windows 2000';
osXP: OSVersion:='Windows XP';
end;
showmessage(osversion); 
end;
end.为什么一编绎的时候总是在os:=Getos;出错。如何修改?????
谁如果能说明原理。或讲解一下送66分。

解决方案 »

  1.   

    报告的错误信息是:Undeclared identifier: 'GetOS'
    是吗?如果是,你的GetOS函数在哪里啊?
      

  2.   

    你在帮助里查一下有没有GETOS这个函数,如果有就看看它在哪个UNIT里面呀
    没有就没办法了
      

  3.   

    是个自定义的函数;要得到
    he GetSystemInfo function returns information about the current system. VOID GetSystemInfo(    LPSYSTEM_INFO lpSystemInfo  // address of system information structure  
       );
     ParameterslpSystemInfoPoints to a SYSTEM_INFO structure to be filled in by this function.  Return ValuesThis function does not return a value.
      

  4.   

    function GetOS :TOSVersion; 
    var
    OS :TOSVersionInfo; 
    begin
    ZeroMemory(@OS,SizeOf(OS));
    OS.dwOSVersionInfoSize:=SizeOf(OS);
    GetVersionEx(OS);
    Result:=osUnknown;
    if OS.dwPlatformId=VER_PLATFORM_WIN32_NT then begin
    case OS.dwMajorVersion of
    3: Result:=osNT3;
    4: Result:=osNT4;
    5: Result:=os2K;
    end;
    if (OS.dwMajorVersion=5) and (OS.dwMinorVersion=1) then
    Result:=osXP;
    end else begin
    if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=0) then begin
    Result:=os95;
    if (Trim(OS.szCSDVersion)='B') then
    Result:=os95OSR2;
    end else
    if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=10) then begin
    Result:=os98;
    if (Trim(OS.szCSDVersion)='A') then
    Result:=os98SE;
    end else
    if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=90) then
    Result:=osME;
    end; 
    end;
      

  5.   

    谢谢,
    http://bydxj.com.cn/grzy/suker/delphi/getsystem.rar
    大家看下。
    TechnoFantasy得分。