使用 Delphi XE8 数组初始化的 WSDL
WSDL with Delphi XE8 array initialize
我用 Delphi XE8 导入了这个 WSDL,我无法初始化数组。
type
elencoDettagliPrescrInviiErogatoType = array of
dettaglioPrescrizioneInvioErogatoType;
----------------------------------
dettaglioPrescrizioneInvioErogatoType = class(TRemotable)
private
FcodProdPrest: stringType;
----------------------------------
InvioErogatoRichiesta = class(TRemotable)
….
Published
property ElencoDettagliPrescrInviiErogato: elencoDettagliPrescrInviiErogatoType read FElencoDettagliPrescrInviiErogato write FElencoDettagliPrescrInviiErogato;
--------------------------------
function invioErogato(const InvioErogatoRichiesta: InvioErogatoRichiesta):
InvioErogatoRicevuta; stdcall
我的电话
procedure Tform1.Button1Click(Sender: TObject);
var
richiestaInvio : InvioErogatoRichiesta;
ricevutaInvio : InvioErogatoRicevuta;
begin
richiestaInvio := InvioErogatoRichiesta.Create;
// how to initialize arrays?
setlength(richiestaInvio.ElencoDettagliPrescrInviiErogato,1);
// Error memory not read
richiestaInvio.ElencoDettagliPrescrInviiErogato[0].codProdPrest := 'Codice_test';
...
end;
我尝试了各种方法来初始化 ElencoDettagliPrescrInviiErogato[0],但没有成功。
解决办法是:声明一个变量
var
richiestaInvio : InvioErogatoRichiesta;
ricevutaInvio : InvioErogatoRicevuta;
dettagliImp : elencoDettagliPrescrInviiErogatoType;
// initializes array
begin
richiestaInvio := InvioErogatoRichiesta.Create;
ricevutaInvio := InvioErogatoRicevuta.Create;
//my problem was this. Now solved!
setlength(dettagliImp,1);
// create dipendence
dettagliImp[0] := dettaglioPrescrizioneInvioErogatoType.create();
//popolate field array
dettagliImp[0].codProdPrest :='cod test';
//ecc.
// end
richiestaInvio.ElencoDettagliPrescrInviiErogato := dettagliImp;
...
我用 Delphi XE8 导入了这个 WSDL,我无法初始化数组。
type
elencoDettagliPrescrInviiErogatoType = array of
dettaglioPrescrizioneInvioErogatoType;
----------------------------------
dettaglioPrescrizioneInvioErogatoType = class(TRemotable)
private
FcodProdPrest: stringType;
----------------------------------
InvioErogatoRichiesta = class(TRemotable)
….
Published
property ElencoDettagliPrescrInviiErogato: elencoDettagliPrescrInviiErogatoType read FElencoDettagliPrescrInviiErogato write FElencoDettagliPrescrInviiErogato;
--------------------------------
function invioErogato(const InvioErogatoRichiesta: InvioErogatoRichiesta):
InvioErogatoRicevuta; stdcall
我的电话
procedure Tform1.Button1Click(Sender: TObject);
var
richiestaInvio : InvioErogatoRichiesta;
ricevutaInvio : InvioErogatoRicevuta;
begin
richiestaInvio := InvioErogatoRichiesta.Create;
// how to initialize arrays?
setlength(richiestaInvio.ElencoDettagliPrescrInviiErogato,1);
// Error memory not read
richiestaInvio.ElencoDettagliPrescrInviiErogato[0].codProdPrest := 'Codice_test';
...
end;
我尝试了各种方法来初始化 ElencoDettagliPrescrInviiErogato[0],但没有成功。
解决办法是:声明一个变量
var
richiestaInvio : InvioErogatoRichiesta;
ricevutaInvio : InvioErogatoRicevuta;
dettagliImp : elencoDettagliPrescrInviiErogatoType;
// initializes array
begin
richiestaInvio := InvioErogatoRichiesta.Create;
ricevutaInvio := InvioErogatoRicevuta.Create;
//my problem was this. Now solved!
setlength(dettagliImp,1);
// create dipendence
dettagliImp[0] := dettaglioPrescrizioneInvioErogatoType.create();
//popolate field array
dettagliImp[0].codProdPrest :='cod test';
//ecc.
// end
richiestaInvio.ElencoDettagliPrescrInviiErogato := dettagliImp;
...