小编Pep*_*Pep的帖子

无法在Delphi for VIES SOAP服务中加载WSDL文件/位置

我正在尝试创建一个Delphi XE2函数,通过VIES的SOAP服务检查增值税号:http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl

当我使用上面的URL使用Delphi X2的WSDL导入器获取默认值时,我收到以下错误:无法加载WSDL文件/位置:http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl.错误[未找到请求的标头 - URL:http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl - SOAPAction:""

我在做什么?

delphi soap delphi-xe2

4
推荐指数
1
解决办法
4142
查看次数

我可以在Console Delphi应用程序中使用DataModule吗?

我可以在Console Delphi应用程序中使用DataModule表单吗?

我尝试将现有的单元/表单包含在uses子句中的控制台Delphi应用程序中,但DataModule1被解析为nil(未初始化).

delphi

4
推荐指数
1
解决办法
2211
查看次数

用Delphi解析可空的TJSONObject

我正在使用Delphi XE3.我有一个JSON流,其中一个对象可以为null.也就是说,我可以收到:

"user":null
Run Code Online (Sandbox Code Playgroud)

要么

"user":{"userName":"Pep","email":"pep@stackoverflow.com"}
Run Code Online (Sandbox Code Playgroud)

我想区分这两种情况,我尝试使用这段代码:

var 
  jUserObject: TJSONObject;

jUserObject := TJSONObject(Get('user').JsonValue);
if (jUserObject.Null) 
then begin
  FUser := nil;
end else begin
  FUser := TUser.Create;
  with FUser, jUserObject do begin
    FEmail := TJSONString(Get('email').JsonValue).Value;
    FUserName := TJSONString(Get('userName').JsonValue).Value;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

如果我把一个断点排成一行if (jUserObject.Null) then begin并且我将鼠标放在jUserObject.Null它上面说jUserObject.Null = True是否"user":null,它说jUserObject.Null = False是否"user":{"userName":"Pep","email":"pep@stackoverflow.com"}

但是,如果我使用调试器进入该行,jUserObject.Null将调用以下XE3库代码:

function TJSONAncestor.IsNull: Boolean;
begin
  Result := False;
end;
Run Code Online (Sandbox Code Playgroud)

所以,我总是得到Falseif就算一句,"user":null.

我想我总是有一个解决方法,即捕获在执行"user":nullGet('email').JsonValue执行时引发的异常,以便区分值是否为null,但这看起来并不那么优雅.

如何判断JSON对象在JSON流中是否具有空值?

delphi json

3
推荐指数
1
解决办法
3573
查看次数

PayPal IPN通知中未显示的日文字符

在PayPal(沙盒)中,我定义了一个日语用户,其名字和姓氏带有日文字符.

但是,我收到的IPN通知使用charset = windows-1252进行编码.实际上,这是从Paypal收到的HTTP请求中的参数之一.

我想用他/她的名字问候用户,但由于我似乎收到的不是Unicode,我会发送垃圾字符而不是付款人姓名.

有没有办法让Paypal的IPN通知以Unicode发送给我的监听器?

paypal-ipn

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

如何在Delphi中使用SMTP Amazon SES?

我有一个Delphi应用程序,它使用Indy IdSMTP对象向smarthost发送电子邮件.

我想使用带有SMTP接口的Amazon SES服务.根据http://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-connect.html,我需要使用TLS连接.

我不确定我应该将哪个值用于IdSMTP对象的UseTLS属性,然后应该在IOHandler中指定什么.

在Delphi中使用Amazon SES有直接的方法吗?目前我希望能够只发送短信,但将来我可能需要发送HTML电子邮件.

delphi smtp indy amazon-ses

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

如何在C++ Builder项目中静态链接Delphi过程

我想静态链接C++ Builder源代码中的Delphi函数.我将.pas文件添加到C++ Builder项目中.我尝试了以下声明:

在德尔福:

procedure SayHi; stdcall;
Run Code Online (Sandbox Code Playgroud)

在C++ Builder中:

extern "C" {
    void __stdcall SayHi();
}
Run Code Online (Sandbox Code Playgroud)

所有模块编译正常,但当我链接它时,我收到以下错误:

[ilink64 Error] Error: Unresolved external 'SayHi' referenced from C:\DEV\PACKSWAP\WIN64\DEBUG\MAIN.O
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

delphi c++builder

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

Castalia内联变量声明如何在Delphi XE8中工作?

我试图使用这里描述的 Castalia的内联变量声明.

以下是上述链接中的摘录:

内联变量声明 Castalia提供内联变量声明.在代码的主体中,您可以声明变量,并且只要按空格键,Castalia就会自动将其添加到函数或过程的变量声明部分,您在主体中键入的声明将被引用替换到变量.

但是,它似乎对我不起作用.例如,如果我myVar: integer在此代码后按空格键:

procedure test;
begin
  myVar: integer
end;
Run Code Online (Sandbox Code Playgroud)

我没有自动获得(实际上没有任何反应):

procedure test;
var
  myVar: integer;
begin
  myVar
end;
Run Code Online (Sandbox Code Playgroud)

似乎没有被任何具体CASTALIA设置启用/禁用CASTALIA - > CASTALIA选项用于在线变量和Embarcadero文件没有任何提及任何设置.

Castalia内联变量声明如何工作?

delphi delphi-xe8

0
推荐指数
1
解决办法
460
查看次数

标签 统计

delphi ×6

amazon-ses ×1

c++builder ×1

delphi-xe2 ×1

delphi-xe8 ×1

indy ×1

json ×1

paypal-ipn ×1

smtp ×1

soap ×1