大家看看,这是不是delphi的savedialog的bug,还是与IE有关系呢?(50分)

  • 主题发起人 主题发起人 guangz
  • 开始时间 开始时间
G

guangz

Unregistered / Unconfirmed
GUEST, unregistred user!
[blue][/blue][black][/black]
button1下的onclick事件的代码:
var backname:string

begin
backname:=formatdatetime('mm',now)+formatdatetime('dd',now)+'备份';
SaveDialog1.FileName:=backname;
if SaveDialog1.Execute then
begin
showmessage(SaveDialog1.FileName);
end;
end;
这样子一点事也没有
而把它做成activeform发布到网页上上去,showmessage()显示的竟然是乱码
这是不是delphi的savedialog的bug,还是与IE有关系呢?
这是为什么,请大家帮帮忙想想,谢谢!

 
两个汉字可能在IE中引起乱码吧?
 
为什么没有人回答,都不知道吗,分少说话,可以加
kkyy:谢谢你,那怎么解决这个为你呢?
 
我用的D5没有问题
 
我的时D6是不是D6的问题?
谢谢,有谁知道?
 
D5,D6都是一样的,都会出现乱码的
 
那这个问题能解决吗?
 
应该能解决的,自己写个savedialog,注意不要用到消息,不过我还没来得急试
 
用OpenDialog1.Files[0]试试看
 
我也发现了这个问题(ActiveXForm中才有)。
我发现是系统的问题,不是Delphi的问题。
我的计算机系统中会出现这个错,别人的机器没有(使用时不用担心)。
重新装系统,装每个软件(包含升级)都检查一次。(我怀疑是Norton或IE 6等)
 
解决方法:showmessage(SaveDialog1.Files[0]);
 
这是Delphi的Bug,可以看看我以前答过的帖子,
Delphi在取FileName的时候通过ParentHandle来传送,
结果在ActiveForm中,IE把FileNmae 的String URL编码了
哈哈,[:D][:D][:D][:D][:D][:D][:D][:D]
 
D6对双字节的中国人有些看法,所以你不要指望他,但也不妨试试第二个升级包,据说可以解决。
 
D5为例,修改Dialog.pas
............................................................................
function TOpenDialog.GetFileName: TFileName;
var
Path: array[0..MAX_PATH] of Char;
begin
//ShowMessage(FFileName);
{if NewStyleControls and (FHandle <> 0) then
begin
//这里被IE给编码了[:D][:D]
SendMessage(GetParent(FHandle), CDM_GETFILEPATH, SizeOf(Path), Integer(@Path));
Result := StrPas(Path);
end
else}
Result := FFileName;
end;
................................................................................
 
sorry很久没来,谢谢大家,问题已经解决,用SaveDialog1.Files[x]可以解决
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
706
import
I
I
回复
0
查看
769
import
I
后退
顶部