急!!我做的一个ActiveX Form 中用OpenDialog打开一个文件,返回的文件名是乱码!(100分)

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

lu_ning

Unregistered / Unconfirmed
GUEST, unregistred user!
我的delphi6,win98
可问题是前几天还是好的啊
 
更改一下你使用字符串变量的类型,改为pchar或ansichar试试如何
 
我直接写的
ShowMessage(OpenDialog1.FileName);
看到的结果就是乱的,没用中间变量
 
->问题是前几天还是好
那换台机子试试看结果如何!判断是不不机子环境问题。
 
对了,我也遇到这问题,
我不知道它究竟做了什么,我这么测试过:在一个最简单的可以正常做opendialog的open
动作,并能
返回正确的filename,但是这时候我用我原来有问题的那些源代码来做编译,后果你猜:
奶奶的,不行,更为恶劣的是我这会儿用最先前的那个也Game Over!了。
后来我看了看源码,
SendMessage(GetParent(FHandle), CDM_GETFILEPATH, SizeOf(Path), Integer(@Path));
和debug程序,它应该是通过IE来得到这个字符窜,而她--(我的Baby)已经被编码了

希望有解的发给我-----期待的眼神!

建议方法:
用win32下的古老控件,或一些象servers下的vcl,
在delphi内部对字符窜进行传递。
 
在我原来做好的系统里TMD就是乱码,
可是你随便做个Test的Procject就不是乱码。
真不明白问题出在什么地方了。
期待--高手。
再加200分!!
 
唉只能如此了!
改Dialogs.pas
原来: property FileName: TFileName read GetFileName write FFileName;
改为: property FileName: TFileName read FFileName write FFileName;
编译得到DCU后,覆盖掉Delphi原来的DCU
我是据这样简单的解决了,
如果有好的办法,请告诉我
 
后退
顶部