目前使用Delphi6.0开发一个文件传输方面的控件。使用ActiveForm技术实现,目前功能基本达到,但是有三个问题迟迟无法解决,一是控件分发后在客户端的如下场合:页面A,点击上面的链接,产生新的页面B,此页面包含有我的控件,显示与功能正常;再同样产生页面C后,仍然正常。但是,如果此时关闭页面B(也就是说,页面B是最先应用到控件,最先被关闭的),页面C的控件在刷新时提示DAX错误。全文是
    DAX Error
        Access violation at address 03813A4E(这里可能会变化) in module 'XXX.ocx'. Read of address 00000000.
    然后,页面的控件消失了。
    补充一下:如果按顺序先关闭页面C的话,刷新页面B没有任何问题;如果是从页面B而非页面A生成页面C的话,关闭页面B不会造成页面C失败。二是我的控件里应用了SHGetFileInfo函数得到系统图标库的句柄,然后赋给ListView控件,由此可以得到附件的图标显示。问题是:图标的显示居然和控件里的方法长短和位置产生了相互影响。如果方法太长(甚至只增加了一行),或者调整了方法的位置,图标就有可能不再显示了。但是我根据需求可能会不断增加方法,或者添加代码的。
    补充一下:我觉得和系统Shell32.dll有关系,会不会是Delphi编写的控件在Web里使用时,调用Shell32.dll的时间或者时机有些关联?三是我的控件本来计划支持SSL特性。我使用了indy9.0的新组件,设好各项参数后,与一个只需要服务器端单方SSL验证的服务器交互,居然只能够下载服务器端的文件,不能上传文件了。    声明:我的信誉是100分,而且我也有足够的分数分发。只要能够提供有益的线索和思路帮助我解决问题的话,一律给分。每个问题300分,还有100分给up的朋友们。