savedialog犯病了(5分)

  • 主题发起人 主题发起人 xuefeiyang
  • 开始时间 开始时间
X

xuefeiyang

Unregistered / Unconfirmed
GUEST, unregistred user!
以前应用一直很正正常,也不知从哪一天开始当需要用savedialog1.filename的时候就
出错了,写了一个正常的文件名保存,但在savedialog1.filename里却没有,或者变成了
‘$’,莫名其妙阿?????
 
if SaveDialog.Execute then
begin
NewStyleControls := False; //否则不能返回正确的FileName
edtFileName.Text := SaveDialog.FileName;
NewStyleControls := True;
end;

试一试?我没遇到过,听人说过。

 
重装一下,^_^
 
SaveDialog是Windows公共DLL里边的函数,可能是你的系统装什么软件,被替换成别的语言版本了。
用修复选项重装一下Windows吧
 
重装?
不可能吧,一台还好说,客户端十好几台,难道都重装?
to avant
谢谢,你的办法不行,干脆就报错
 
我也遇到过这个问题,重启动机器就好了.
 
重启不管用
 
是不是控制面班里的系统语言被什么程序修改了
 
我也碰到过,重装BCB都没有用,原因是安装了一个软件以后,
它在系统启动时加载了一个服务,你可以试着将某些无用的东西去掉试试。
我就是这样解决的。
 
我现在也是这样,不知道咋搞了

 
应该和Windows的系统DLL被破坏有关.(CommDlg.dll)
 
使用savedialog1.Files[0]试试。
 
你是不是UNINSTALL3721没有删干净,
你可以再重装一遍3721。
 
3721???
什么东东?
 
打开任务管理器将没用的进程都杀掉,就行了
 
是3721在作怪!

请察看你的机器是否安装了3721!
 
这是Delphi的bug
你将Dialogs.pas这样该一下试试:
function TOpenDialog.GetFileName: TFileName;
//var
// Path: array[0..MAX_PATH] of Char;
begin
{if NewStyleControls and (FHandle <> 0) then
begin
SendMessage(GetParent(FHandle), CDM_GETFILEPATH, SizeOf(Path), Integer(@Path));
Result := StrPas(Path);
end
else }
Result := FFileName;
end;
 
该完之后将该单元重现编译
然后将编译后的.dcu文件覆盖以前的文件就可以了
 

Similar threads

D
回复
0
查看
867
DelphiTeacher的专栏
D
D
回复
0
查看
836
DelphiTeacher的专栏
D
D
回复
0
查看
785
DelphiTeacher的专栏
D
后退
顶部