第一个问题:删除Word文档出现的问题!代码如下:
procedure MoveFileToDustbin(Filename:string);
var
T:TSHFileOpStruct;
begin
FillChar(T,Sizeof(TSHFileOpStruct),#0);
with T do
begin
Wnd:=0;
wFunc:=FO_DELETE;
PFrom:=Pchar(Filename);
fFlags:=FOF_ALLOWUNDO; ///设定将文件删除到回收站中///
end;
SHFileOperation(T);{declared in ShellApI}
end;在过程中调用函数: MoveFileToDustbin(Template2);但有时可以删除到回收站中,有时提示如下错误:“无法删除文件:无法读源文件或磁盘”,待删除下一个Word文档时,有时又可以,有时却也不可以!请问是什么原因?如何解决?有代码最好!谢谢!
第二个问题:如何获得程序中Gauge1的Progress的值!
Application.CreateForm(Tscform,scform);
scform.Show;
scform.Caption:='正在进行数学建模......';
scform.Panel1.Caption:=scform.Caption;
application.ProcessMessages;
Randomize;
M:=20000000;
for i:=0 to M do
scform.gauge1.Progress:=(i) div (M div 100);
scform.Caption:='正在进行数据计算......';
scform.Panel1.Caption:=scform.Caption;
application.ProcessMessages;
for i:=0 to M do
scform.gauge1.Progress:=(i) div (M div 100);
scform.close;
scform.Release;
如何获得程序中Gauge1的Progress的值!比如将数据表中的数据插入到word中,如下所示!如何获得Gauge1的Progress的值!使其与插入数据的过程同步,当数据插入完毕,则进度条结束!用其他控间也可以,请提供相应代码!谢谢!!
vTable6 := WordApplication1.ActiveDocument.Tables.Item(6);
ADOQuery4.Close;
ADOQuery4.SQL.Clear;
ADOQuery4.SQL.Add('SELECT * FROM cz');
ADOQuery4.Open;
for i:=0 to ADOQuery4.RecordCount-1 do
begin
k1:=0;
k2:=0;
for j:=0 to 16 do
begin
vTable6.Cell(6, j+3).Range.Text:=ADOQuery4.Fields[j*2].AsString;
if trim(ADOQuery4.Fields[j*2].AsString)<>'' then
k1:=k1+ADOQuery4.Fields[j*2].value;
vTable6.Cell(7, j+3).Range.Text:=ADOQuery4.Fields[j*2+1].AsString;
if trim(ADOQuery4.Fields[j*2+1].AsString)<>'' then
k2:=k2+ADOQuery4.Fields[j*2+1].value;
end;
vTable6.Cell(6, 2).Range.Text:=inttostr(k1);
vTable6.Cell(7, 2).Range.Text:=inttostr(k2);
end;
procedure MoveFileToDustbin(Filename:string);
var
T:TSHFileOpStruct;
begin
FillChar(T,Sizeof(TSHFileOpStruct),#0);
with T do
begin
Wnd:=0;
wFunc:=FO_DELETE;
PFrom:=Pchar(Filename);
fFlags:=FOF_ALLOWUNDO; ///设定将文件删除到回收站中///
end;
SHFileOperation(T);{declared in ShellApI}
end;在过程中调用函数: MoveFileToDustbin(Template2);但有时可以删除到回收站中,有时提示如下错误:“无法删除文件:无法读源文件或磁盘”,待删除下一个Word文档时,有时又可以,有时却也不可以!请问是什么原因?如何解决?有代码最好!谢谢!
第二个问题:如何获得程序中Gauge1的Progress的值!
Application.CreateForm(Tscform,scform);
scform.Show;
scform.Caption:='正在进行数学建模......';
scform.Panel1.Caption:=scform.Caption;
application.ProcessMessages;
Randomize;
M:=20000000;
for i:=0 to M do
scform.gauge1.Progress:=(i) div (M div 100);
scform.Caption:='正在进行数据计算......';
scform.Panel1.Caption:=scform.Caption;
application.ProcessMessages;
for i:=0 to M do
scform.gauge1.Progress:=(i) div (M div 100);
scform.close;
scform.Release;
如何获得程序中Gauge1的Progress的值!比如将数据表中的数据插入到word中,如下所示!如何获得Gauge1的Progress的值!使其与插入数据的过程同步,当数据插入完毕,则进度条结束!用其他控间也可以,请提供相应代码!谢谢!!
vTable6 := WordApplication1.ActiveDocument.Tables.Item(6);
ADOQuery4.Close;
ADOQuery4.SQL.Clear;
ADOQuery4.SQL.Add('SELECT * FROM cz');
ADOQuery4.Open;
for i:=0 to ADOQuery4.RecordCount-1 do
begin
k1:=0;
k2:=0;
for j:=0 to 16 do
begin
vTable6.Cell(6, j+3).Range.Text:=ADOQuery4.Fields[j*2].AsString;
if trim(ADOQuery4.Fields[j*2].AsString)<>'' then
k1:=k1+ADOQuery4.Fields[j*2].value;
vTable6.Cell(7, j+3).Range.Text:=ADOQuery4.Fields[j*2+1].AsString;
if trim(ADOQuery4.Fields[j*2+1].AsString)<>'' then
k2:=k2+ADOQuery4.Fields[j*2+1].value;
end;
vTable6.Cell(6, 2).Range.Text:=inttostr(k1);
vTable6.Cell(7, 2).Range.Text:=inttostr(k2);
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货