H hb9999 Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-20 #1 1。捕捉drivecomcobox变为未准备好的驱动器的错误消息 2.当前drive为光盘时,user弹出光盘的消息
D dedman Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-20 #2 1。捕捉drivecomcobox变为未准备好的驱动器的错误消息 你是不是加进了一些其他的即时响应呀,把那段控制disable 2.当前drive为光盘时,user弹出光盘的消息 var error:longint; SetParm: TMCI_set_Parms; begin SetParm.dwCallback := Handle; error:=mcisendcommand(mediaplayer1.deviceid,mci_set,mci_set_door_open,Longint(@SetParm)); end;
1。捕捉drivecomcobox变为未准备好的驱动器的错误消息 你是不是加进了一些其他的即时响应呀,把那段控制disable 2.当前drive为光盘时,user弹出光盘的消息 var error:longint; SetParm: TMCI_set_Parms; begin SetParm.dwCallback := Handle; error:=mcisendcommand(mediaplayer1.deviceid,mci_set,mci_set_door_open,Longint(@SetParm)); end;
D dedman Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-20 #3 不好意思,刚才贴上的是tmediaplayer打开光驱的
H hb9999 Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-21 #5 1.没有加进一些其他的即时响应呀,出现Einouterror 21错误消息 无法变为自己的提示信息
J JohnsonGuo Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-21 #7 关键是你要知道产生错误的代码是那一段,然后用try捕捉即可如: try //你的代码 except On E: EInOutError do ... end;
C Crab Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-21 #8 光盘弹出时,windows 应该有消息通知的,查一查吧,请高手回答。
W wjiachun Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-28 #10 hb9999:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
J j_shen2000 Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-18 #11 其实,目前大富翁上所有关于DRIVERCOMBO的回答,不外乎 利用setErrorMode(SEM_FAILCRITICALERRORS)和MCI。 这两种方式在某些情况下可以满足要求,但是局限性十分明显。 1、如果整个程序中有数十个DRIVERCOMBO,那么对每个控件都处理,岂不烦死。 2、在onchange时,I/O异常捕获发生在错误代码处理之前,因此必须用消息捕获先将I/O异常 捕获关闭,这段程序也不小。 其实,最好的方法就是直接处理异常I/O21,用GETLASTERROR得到异常代码,如果=21则显示 MESSAGEDLG,否则...。在具体程序中,可以在程序的最外层的全局异常处理中写入,这样 无论哪个DRIVERCOMBO发生这种异常,本身不处理,最后交给最外层异常处理中解决,可以 大大减小重复代码。直接对异常处理往往事半功倍,而且安全性好。这个方法我在多个程序 中都使用过,很好使。
其实,目前大富翁上所有关于DRIVERCOMBO的回答,不外乎 利用setErrorMode(SEM_FAILCRITICALERRORS)和MCI。 这两种方式在某些情况下可以满足要求,但是局限性十分明显。 1、如果整个程序中有数十个DRIVERCOMBO,那么对每个控件都处理,岂不烦死。 2、在onchange时,I/O异常捕获发生在错误代码处理之前,因此必须用消息捕获先将I/O异常 捕获关闭,这段程序也不小。 其实,最好的方法就是直接处理异常I/O21,用GETLASTERROR得到异常代码,如果=21则显示 MESSAGEDLG,否则...。在具体程序中,可以在程序的最外层的全局异常处理中写入,这样 无论哪个DRIVERCOMBO发生这种异常,本身不处理,最后交给最外层异常处理中解决,可以 大大减小重复代码。直接对异常处理往往事半功倍,而且安全性好。这个方法我在多个程序 中都使用过,很好使。