关于自己做OCX控件的问题

hudawq 2003-09-23 05:32:57
我用Delphi6写了一个ActiveForm,编译成OCX控件,在该控件中用了一个OpenDialog组件,同时做了一个OpenLocal的接口方法调用OpenDialog.Excute函数.在外部使用时只用使用obj.OpenLocal的方法就行了.
后来我在一个Vb写的程序调用该ocx,运行obj.OpenLocal是正常的;但是在网页中嵌入该ocx时,运行obj.OpenLocal,不正常,每次执行OpenDialog.Excute后,得到的OpenDialog.FileName的字符长度总为1,这是什么缘故?
...全文
65 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hudawq 2003-09-29
  • 打赏
  • 举报
回复
算了,我已经用filelistbox等控件模拟了一个OpenDialog解决了该问题!
谢谢大家支持了!
hudawq 2003-09-27
  • 打赏
  • 举报
回复
vb中ShowMessage(OpenDialog.FileName)是得到的文件名,网页js中得到的是乱码
foxnt 2003-09-24
  • 打赏
  • 举报
回复
showmessage(inttostr(length(PWidechar(WideString(OpenDialog.FileName)))));
最好是直接用widestring.VB和JAVA都没有指针的。
shadowfish 2003-09-24
  • 打赏
  • 举报
回复
对,把string转换成Pchar
delphi_xizhousheng 2003-09-24
  • 打赏
  • 举报
回复
其实不管是ActiveX还是DLL 用PCHAR都是比较稳妥的选择
hiflower 2003-09-24
  • 打赏
  • 举报
回复
那么你 ShowMessage(OpenDialog.FileName) 是什么呢?
hudawq 2003-09-24
  • 打赏
  • 举报
回复
我在OpenDialog.Excute后加入如下测试语句
showmessage(inttostr(strlen(Pchar(WideString(OpenDialog.FileName)))));
结果在网页中调用还是显示长度为1,但在VB中调用正常.
我搞不懂了,为什么?
halfdream 2003-09-24
  • 打赏
  • 举报
回复
转成WideString.
hudawq 2003-09-24
  • 打赏
  • 举报
回复
ehom告诉我OpenDialog.FileName的数据类型是String,此为Delphi特有的数据类型,当然不兼容.
只是我不知在网页中应该把OpenDialog.FileName转换成什么类型才对?
Huiz 2003-09-23
  • 打赏
  • 举报
回复
你是怎么运行的,然后怎么取FileName的,没有说清楚
hudawq 2003-09-23
  • 打赏
  • 举报
回复
网页上使用的是Javascript

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧