几个低级问题和一个关于indy控件的问题(200分)

  • 主题发起人 主题发起人 lovinger_2000
  • 开始时间 开始时间
L

lovinger_2000

Unregistered / Unconfirmed
GUEST, unregistred user!
低级问题如下:
1,我在程序中使用try...except...end;
语句来捕捉处理错误,但是我在Delphi环境下F9运行时不能捕捉到错误,系统照样弹出错误对话框,但是在编译成.exe文件后执行,却能够给予正确的处理,请问如何设置Delphi环境使其能像运行.exe文件一样执行正常的错误处理代码。
2,对于PChar和String,PChar是实际上的一个地址?而PChar^才是真正的String值,不能解释String类型,这个我理解,如果我说的不对,请指出,谢谢。
关于Indy控件的问题,我使用了idTCPClient和idTCPServer,由服务器向客户机传输文件流,我的大概做法是在使用idTCPClent时,自己建立一个线程,在Execute中加入代码,客户机和服务器在使用ReadLn和WriteLn时情况都很正常,但是一旦传输的是Stream或者Buffer,客户机就收不到数据,或者收到的数据仅仅是回车,我晕了。
再问一下,关于ReadStream和WriteStream,请问在一个线程的一次执行中,比如客户端idTCPClient的自定义线程执行中,一旦使用ReadStream,在线程的一个时间片内没有接收完流,在此时间片执行完成后,到下一个时间片执行的时候是接着上次的ReadStream继续接收数据吗?
 
1、delphi在运行环境中总是会报错,是方便你调试程序,编译成exe以后执行就没问题了,不用担心。
2、String类型的[0]为String的长度,[1]才为String的内容。Pchar前方没有长度,他靠结尾的0来判断结束。PChar^不能解释为String,因为前没有String的长度。
 
在Delphi环境编译程序的时候,首先接受到系统消息的应该是Delphi主程序,所以出错的消息首先由Delphi弹出。关掉调试选项中的Break On Exception。
 
1、如果想关掉的话:菜单->Tools->Debugger Options->Language Exceptions去掉Stop on delphi Exceptions前面的勾。
 
还有一个问题,TCriticalSection在Delphi的帮助文档中说是在SyncObjs单元中,为什么我应用此单元,并使用TCriticalSection的时候老是报错?
(说明一下:TCriticalSection为临界区)
 
是程序不能编译,还是运行出错?
1、编译出错?应该不可能,TCriticalSection就在SyncObjs单元中,要不把你的创建代码贴出来。
2、运行出错?肯定是你的代码有逻辑错误。
 
临界区的问题解决了,我用的是TRTLCriticalSection,我用TCriticalSection老是有错误。大家讨论一下Indy控件的问题好吗?再次谢谢大家。
 
再问一下,怎么指定Delphi7的工作路径,比如我的项目通常都保存在我的一个专门的目录中,而一般我用Delphi7的Open时,弹出的对话框的路径总是在Delphi的Project目录下面,怎么修改它?
还有,Delphi7的IDE面板太多控件,我的IDE只有一行,我看到别人的Delphi的IDE面板是更多行,就不会老是左右滚动IDE来选取控件了。
谢谢各位回答。
 
在tools bar 上right click 裡邊有個屬性,你在那設定你要的控件的
 
多人接受答案了。
 
后退
顶部