当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 紧急求助一个菜鸟问题: delphi7,我的rave报表编辑器的工具条上那些drawing 之类的按钮不见了??? 请教高手!!谢谢!! ......
 ·啊怎么设计上网    »显示摘要«
    摘要: 在winxp里怎样设计上网! 内置modem,电话线上网,用200卡上网! 怎样设计才能连通!!! ......


请来看看我的饿这段代码中的try……except为什么不起作用

procedure   Tmediaplay.Image3Click(Sender:   TObject);  
  var  
    listitem:Tlistitem;  
  begin  
    with   listview2   do  
    try  
          begin  
              listitem:=items.Add;  
              listitem.Caption:=listview1.Selected.Caption;  
            end;  
    except  
        on   EAccessViolation   do  
              showmessage(没有歌曲可以转移,请添加歌曲!);  
    end;  
  end;  
  我是想在Listview1中没有内容时能显示提示框中的内容,但总也不能实现,我是个初学者,对try……except……end不太会使用,请高手们指点。

NO.1   作者: dacong

if   listview1.Selected.Caption=   then    
  showmessage(没有歌曲可以转移,请添加歌曲!);  
  try……except……end  
  只有在引发异常时才发生,  
  你的那段,就没什么异常

NO.2   作者: choupipi

没有操作异常当然不会执行expect后的代码了。你可以在正常的程序里判断listview是否有内容

NO.3   作者: Erice

没异常,就不会引发EXCEPT

NO.4   作者: SunKinXing

改成这样就可以引发异常了  
   
   
  procedure   Tmediaplay.Image3Click(Sender:   TObject);  
  var  
    listitem:Tlistitem;  
  begin  
    with   listview2   do  
    try  
          if   trim(Listview1.Selectected.Caption)   =     then  
              abort  
          else  
          begin  
              listitem:=items.Add;  
              listitem.Caption:=listview1.Selected.Caption;  
            end;  
    except  
        on   EAccessViolation   do  
              showmessage(没有歌曲可以转移,请添加歌曲!);  
    end;  
  end;  
  我是想在Listview1中没有内容时能显示提示框中的内容,但总也不能实现,我是个初学者,对try……except……end不太会使用,请高手们指点。  
 

NO.5   作者: oracle_lover

所有的错误类型定义在   ...\borland\delphi6\source\trl\Sys\sysutils.pas  
  凡是   E   打头的几乎全是。但这些类型不一定包括数据库返回的错误信息。  
   
  try  
  ...  
  except  
    on   E:   Exception   do   Showmessage(E.Message);  
  end;   //可以获得数据库返回的错误信息的内容  
  --------------------------------------------------------  
  try  
    ...  
  except  
      on   EZeroDivide   do   HandleZeroDivide;  
      on   EOverflow   do   HandleOverflow;  
      on   EMathError   do   HandleMathError;  
  else  
      HandleAllOthers;     //处理所有其它异常  
  end;  
  --------------------------------------------------------  
  try  
    ...  
  except  
      HandleException;     //默认处理  
  end;  
  try  
  ...  
  except  
    on   E:   Exception   do   Showmessage(E.Classname);  
  end;  
  可以返回错误的类型,但一般数据库错误会笼统的显示   EDatabaseError  
  --------------------------------------------------------  
  你在调试程序的时候Delphi会在每个Exception处中断。  
  运行你的*.exe你会发现一切如你所愿。  
   
  如果你想在调试时不想系统弹出警告对话框,  
  菜单   Tools\Debugger   Options...\  
  Language   Exceptions\Stop   on   Delphi   Exceptions   的钩钩去掉;  
  Tools\Debugger   Options...\  
  OS   Exceptions\Handled   by   选user   program;on   resume选   Run   Unhandled  
   
  另外,如果你想要针对特定的异常进行处理,必须搞清楚它的准确名称。比如你的  
  on   EAccessViolation   do,你确定引发的异常一定是EAccessViolation吗?如果不是,当然捕捉不到。

NO.6   作者: cnhgj

在调试时是没作用,直接运行exe就可以了


    摘要: 谢谢· ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE