全局变量要在private
下定义

解决方案 »

  1.   

    在private 中声明,或在interface中声明
      

  2.   

    procedure TForm1.OnMin (sender :TObject);  //这句
    beginnid.cbsize:=sizeof(tnotifyicondata);
    nid.wnd:=handle;
    nid.uld:=my_tray_icon;
    nid.uflags:=nif_message or nif_icon or nif_tip;
    nid.ucallbackmessage:=wm_traynotify;
    nid.hicon:=application.Icon.Handle ;
    nid.sztip:='NetMax';
    shell_notifyicon(nim_add,@nid);
    showwindow(application.Handle,sw_hide);
    end;
      

  3.   

    定义的地方没错,但你可以看看错误信息,是不是声明TNotifyIconData的单元没在uses列表中。
    zl13(琳):这个例子中nid在哪里定义问题不大(如果没有别的单元引用nid),在private下定义的叫全局变量?
      

  4.   

    错误的信息是:
    [Error] Unit1.pas(36): Undeclared identifier: 'TNOTFYICONDATA'
    [Error] Unit1.pas(39): Identifier redeclared: 'nid'
    [Error] Unit1.pas(48): Missing operator or semicolon
    [Error] Unit1.pas(49): Missing operator or semicolon
    [Error] Unit1.pas(50): Missing operator or semicolon
    [Error] Unit1.pas(51): Missing operator or semicolon
    [Error] Unit1.pas(52): Missing operator or semicolon
    [Error] Unit1.pas(53): Missing operator or semicolon
    [Error] Unit1.pas(54): Missing operator or semicolon
    [Error] Unit1.pas(31): Unsatisfied forward or external declaration: 'TForm1.OnMin'
    [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
    拜托了!谢谢啦!
      

  5.   

    是TNOTIFYICONDATA ,不是TNOTFYICONDATA!!!!!!!!!!!
    少了一个I!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!