我这样使用:
{$IFDEF HIS_CLIENTAPP}
      actChangePW.Visible := False;
      actFreeze.Visible := False;
{$ELSEIF HIS_EXPLORER}
      actChangePW.Visible := False;
      actFreeze.Visible := False;
{$ELSE}
      actChangePW.Visible := True;
      actFreeze.Visible := True;
{$IFEND}意思是在 HIS_CLIENTAPP 和 HIS_EXPLORER 中,编译的东西是一样的,但是其它不一样,我这样用不行,哪位高手有办法,谢谢!

解决方案 »

  1.   

    //$ELSEIF中跟的是常量表达式,不是名称~~{$IFDEF HIS_CLIENTAPP}
          actChangePW.Visible := False;
          actFreeze.Visible := False;
    {$ELSE}
      {$IFDEF HIS_EXPLORER}
          actChangePW.Visible := False;
          actFreeze.Visible := False;
      {$ELSE}
          actChangePW.Visible := True;
          actFreeze.Visible := True;
      {$ENDIF}
      

  2.   

    {$IFDEF HIS_CLIENTAPP or HIS_EXPLORER }
          actChangePW.Visible := False;
          actFreeze.Visible := False;
    {$ELSE}
          actChangePW.Visible := True;
          actFreeze.Visible := True;
    {$IFEND}
      

  3.   

    to hawksoft:
    没这样的语法~~
    测试如下语句~~{$DEFINE HIS_EXPLORER}
    {$IFDEF HIS_CLIENTAPP or HIS_EXPLORER}
    {$ELSE}
    !
    {$ENDIF}
      

  4.   

    {$DEFINE HIS_EXPLORER}
    {$IFDEF HIS_CLIENTAPP or HIS_EXPLORER}
    {$ELSE}
    !
    {$ENDIF}
    语法是可以,但其实起作用的还是第一个定义。上面的和下面的等效:
    {$IFDEF HIS_CLIENTAPP and HIS_EXPLORER}
    {$ELSE}
    !
    {$ENDIF}
      

  5.   

    to hawksoft:我也这样想过,做了测试发现不行哦,哈哈~~