小编Max*_*ams的帖子

TIdHTTP.Get EIdIOHandlerPropInvalid错误

我正在尝试使用TIdHTTP.Get将USPS Zip4结果网页源加载到变量中(以提取4位数的邮政编码后缀),例如,

PgSrc := IdHTTP1.Get('https://tools.usps.com/go/ZipLookupResultsAction!input.action?resultMode=0&companyName=&address1=1600+PENNSYLVANIA+AVE+NW&address2=&city=&state=Select&urbanCode=&postalCode=&zip=20500');
Run Code Online (Sandbox Code Playgroud)

如果我将它粘贴到任何浏览器中,上面的示例url工作正常.但是,在我的代码中,我收到EIdIOHandlerPropInvalid错误,并显示以下消息"IOHandler值无效".

我有很多邮政编码要查找,所以我很感激任何帮助,以避免这个错误或建议采用不同的方法.

delphi

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

线程的性能改进

我从未使用过线程 - 从未想过我的代码会受益.但是,我认为线程可能会提高以下伪代码的性能:

Loop through table of records containing security symbol field and a quote field
    Load a web page (containing a security quote for a symbol) into a string variable
    Parse the string for the quote
    Save the quote in the table
    Get next record
end loop
Run Code Online (Sandbox Code Playgroud)

加载每个网页需要花费最多的时间.解析报价非常快.我想我可以拿一个线程的一半记录,然后在另一个线程中处理另一半.

delphi multithreading

6
推荐指数
1
解决办法
283
查看次数

调试设计时包时启动Delphi时出错

我在启动第二个Delphi 2010实例时遇到了调试设计时包的问题.在项目选项|调试器下,我使用"C:\ Program Files\Embarcadero\RAD Studio\7.0\bin\bds.exe"作为具有以下参数的主机应用程序:" - pDelphi -nocache"

我运行包时收到以下错误消息:

在此输入图像描述

如果我继续,我会得到以下内容:

在此输入图像描述

然后,如果我继续,我得到以下内容:

在此输入图像描述

我究竟做错了什么?这一直以前都有效.(我已经修复并卸载/重新安装了Delphi 2010.)

delphi debugging package delphi-2010

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

TPropInfo的无证成员

System.TypInfo.TPropInfo有两个函数成员(至少在D-XE3中):

function NameFld: TTypeInfoFieldAccessor; inline;
function Tail: PPropInfo; inline;
Run Code Online (Sandbox Code Playgroud)

我找不到他们的任何文档或其使用的任何示例.它们是什么,它们如何使用?(希望有资格作为一个问题.)

delphi delphi-xe3

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

保存VirtualStringTree节点数据

我正在尝试将项目从D6移动到D-XE3.使用VirtualStringTree版本5.10在OnSaveNode和OnLoadEvents中保存和加载树数据时,我得到了垃圾.我可能没有正确处理Unicode,但我可能还有其他一些无知:

procedure TfMain.vstGridSaveNode(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Stream: TStream);
var
  Data: PStkData;
begin
  Data := Sender.GetNodeData(Node);

  //  Owned: boolean;
  Stream.Write(Data.Owned, SizeOf(boolean) );

  //  Symbol: string;
  Stream.Write(PChar(Data.Symbol)^, Length(Data.Symbol) * SizeOf(Char));

  //  AvgTarget: currency;
  //Stream.Write(Data.AvgTarget, SizeOf(currency));

  //  PE: double;
  Stream.Write(Data.PE, SizeOf(double));
end;

procedure TfMain.vstGridLoadNode(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Stream: TStream);
var
  Data: PStkData;
begin
  Data := Sender.GetNodeData(Node);

  //Owned: boolean;
  Stream.Read(Data.Owned, SizeOf(boolean));

  //Symbol: string;
  Stream.Read(PChar(Data.Symbol)^, Length(Data.Symbol) * SizeOf(Char));

  //AvgTarget: currency;
  Stream.Read(Data.AvgTarget, SizeOf(currency));

  //PE: double;
  Stream.Read(Data.PE, SizeOf(double));
end;
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

delphi unicode virtualtreeview tvirtualstringtree delphi-xe3

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