小编Sha*_*pie的帖子

刷新Query/cxGrid而不会丢失所选记录

我知道执行以下操作会刷新查询.

query.Close;
query.Open;
Run Code Online (Sandbox Code Playgroud)

但是在这之后它将焦点设置回cxGrid上的第一条记录.

刷新查询后有没有办法让当前记录保持选中状态?

谢谢.

我做了以下......

procedure Tdatamodule.RefreshGrid;
var pos : tbookmark;
begin
pos := qryMainGrid.GetBookmark;
try
  qryMainGrid.Close;
  qryMainGrid.Open;
  qryMainGrid.GotoBookmark(pos);
finally
  qryMainGrid.FreeBookmark(pos);
end;
Run Code Online (Sandbox Code Playgroud)

结束;

但现在获取数据集未找到错误消息书签.

任何建议将不胜感激.

delphi delphi-xe2

5
推荐指数
1
解决办法
3607
查看次数

CopyFile标记为未声明的标识符

创建了一个复制函数,当尝试在其中使用"CopyFile"时,在编译时,Delphi将其标记为未声明的标识符.

难道我做错了什么?

function TdmData.CopyAFile(Sourcefile, DestFile: string): boolean;
var Src, Dest : PChar;
begin
  Src := StrAlloc(Length(SourceFile)+1);
  Dest := StrAlloc(Length(DestFile)+1);
try
  StrPCopy(Src,SourceFile);
  StrPCopy(Dest,DestFile);

  result := (CopyFile(Src,Dest,FALSE));
finally
  StrDispose(Src);
  StrDispose(Dest);
end;
end;
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,谢谢.

delphi delphi-xe2

2
推荐指数
1
解决办法
2456
查看次数

解析xml文件Delphi

首先,我是编码和Delphi的新手,几个月来一直在使用它.

下面是一个示例xml文件.

我想要实现的是解析.xml文件的每个'Name'部分中的所有数据.

我以前从未这样做过.一些指导意见将不胜感激.我在这里看到了类似的其他问题,但我不能完全掌握它.

我没有代码示例提供....这是我的困难,我不知道从哪里开始.

<ds>
<Customers>
<Name>
<address_name>test 1</address_name> 
<address_line_1>test 1</address_line_1> 
<address_line_2>test 1</address_line_2> 
<address_line_3>test 1</address_line_3>
<postcode>test 1</postcode> 
<tel_no>test 1</tel_no> 
<fax_no>test 1</fax_no> 
<email_address>test 1<email_address/> 
<website>test 1<website /> 
</Name>
<Name>
<address_name>test 2</address_name> 
<address_line_1>test 2</address_line_1> 
<address_line_2>test 2</address_line_2> 
<address_line_3>test 2</address_line_3>
<postcode>test 2</postcode> 
<tel_no>test 2</tel_no> 
<fax_no>test 2</fax_no> 
<email_address>test 2<email_address/> 
<website>test 2<website /> 
</Name>
<Name>
<address_name>test 3</address_name> 
<address_line_1>test 3</address_line_1> 
<address_line_2>test 3</address_line_2> 
<address_line_3>test 3</address_line_3>
<postcode>test 3</postcode> 
<tel_no>test 3</tel_no> 
<fax_no>test 3</fax_no> 
<email_address>test 3<email_address/> 
<website>test 3<website /> 
</Name>
<Customers>
</ds>
Run Code Online (Sandbox Code Playgroud)

谢谢,

xml delphi delphi-xe2

2
推荐指数
2
解决办法
6096
查看次数

CopyFile函数仅适用于xp

我有一个带有按钮的delphi表单.单击此按钮,它允许用户浏览文件并将文件复制到目录.

我的功能代码是这样的:

function TdmData.CopyAFile(Const Sourcefile, DestFile: string): boolean;
var Src, Dest : PChar;
begin
  Src := StrAlloc(Length(SourceFile)+1);
  Dest := StrAlloc(Length(DestFile)+1);
try
  StrPCopy(Src,SourceFile);
  StrPCopy(Dest,DestFile);
  result := (CopyFile(Src,Dest,FALSE));
finally
  StrDispose(Src);
  StrDispose(Dest);
end;
end;
Run Code Online (Sandbox Code Playgroud)

按钮的单击事件:

CopyAFile(fn, Path +'\'+ ExtractFileName(fn));
Run Code Online (Sandbox Code Playgroud)

当我运行这个表单并按下win XP机器上的按钮时,我无法理解,它工作正常,如果我浏览到它被复制到的目录,我可以在那里看到该文件.

但是,在以后的操作系统(如Win 8.1)上运行此表单时,它不会复制文件,再次检查目录,我看不到其中的文件.

我没有得到任何错误,我已经完成了通过罚款的代码.

有没有人遇到过这个或者知道原因是什么?如果有的话,任何帮助都会很棒.

delphi operating-system file delphi-xe2

-2
推荐指数
1
解决办法
391
查看次数

标签 统计

delphi ×4

delphi-xe2 ×4

file ×1

operating-system ×1

xml ×1