请教各位:奇怪,为什么这样就不行?(50分)

  • 主题发起人 主题发起人 yangh888
  • 开始时间 开始时间
Y

yangh888

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么这样就不行?
procedure TForm1.Button1Click(Sender: TObject);
Begin
dircopy('d:/aaa','d:/zzz');
dircopy('d:/bbb','d:/zzz');
end;

procedure dircopy(sdirname,tdirname:string);
var
OpStruc: TSHFileOpStruct;
frombuf, tobuf: Array [0..128] of Char;
Begin
FillChar( frombuf, Sizeof(frombuf), 0 );
FillChar( tobuf, Sizeof(tobuf), 0 );
StrPCopy( frombuf,sdirname);
StrPCopy( tobuf, tdirname);
With OpStruc DO Begin
Wnd:= Handle;
wFunc:= FO_COPY;
pFrom:= @frombuf;
pTo:=@tobuf;
fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
fAnyOperationsAborted:= False;
hNameMappings:= Nil;
lpszProgressTitle:= Nil;

end;
if ShFileOperation( OpStruc )=0 then
showmessage('备份成功!')
else
showmessage('备份失败!')
end;
************************************************************
提示错误:
[Error] baktool1.pas(196): Undeclared identifier: 'dircopy'
[Error] baktool1.pas(209): Undeclared identifier: 'Handle'
请指教,谢谢!
 
过程定义太晚了,应该在调用以前
两个过程的顺序换一下
 
使用之前,将此函数声明一下
 
to lanbing1400:
对调后还提示:
[Error] baktool1.pas(203): Undeclared identifier: 'Handle'
何故?
不好意思,初学者。
就此例应在何处声明、如何声明?
 
203行?
在你这段程序的什么位置?
你程序应该还有其他代码,根据行号不知道在哪出错

好象应该是
Wnd:= Handle这句吧,是吗
 
修改==> Wnd:= form1.Handle; 执行通过,没有任何问题.
 
我爱你们,谢谢!
 
多人接受答案了。
 
后退
顶部