Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Inicializar array de Tremotable (https://www.clubdelphi.com/foros/showthread.php?t=79600)

matiaslegnazzi 20-07-2012 21:00:05

Inicializar array de Tremotable
 
Buenos Dias. Estoy intentando pasar una property que es un array de tremotable, pero me da un error de memoria al asignar un valor x.
Es la primera vez que utilizo TRemotable y creo que mi problema es que no inicializo Items (arrayofitem). Pero ya lo intenté y no se como hacerlo.
Ya probe con Setlength(Result.Items,10), pero me da error al compilar.
Adjunto el codigo completo. Agracederé cualquier ayuda que puedan brindarme.
Saludos y Gracias

Código Delphi [-]
Invoice_Body = class(TRemotable)
  private
    FItem_Descripcion: string;
    FItem_Value: Currency;
   published
    property Item_Descripcion: string read FItem_Descripcion write FItem_Descripcion;
    property Item_Value: Currency read FItem_Value write FItem_Value;

  end;
  ArrayOfItem = array of Invoice_Body;

   TInvoice = class(TRemotable)
  private
    FBranch_Code: Integer;
    FItems: ArrayOfItem;
  public
   published
    property Branch_Code: Integer read FBranch_Code write FBranch_Code;
    property Items: ArrayOfItem read FItems write FItems;
  end;

   { Invokable interfaces must derive from IInvokable }
  IwsEPS30 = interface(IInvokable)
  ['{43B60693-DBC8-4874-8267-A93FB02EAD08}']

   function WSEPS30_Invoice(ParamsStr:trParams): tInvoice; stdcall;
Luego en el código de WSEPS30_Invoice....
Código Delphi [-]
function twsEPS30.WSEPS30_Invoice(ParamsStr:trParams): tInvoice; stdcall;
var ck: widestring;
    cal: currency;
    tr_bl: OleVariant;
begin
 svr:= CoEps30Svr.create();
 result := tInvoice.Create;
 svr.LogOnEx(ParamsStr.SystemName,Paramsstr.ClientId,Paramsstr.UserName,Paramsstr.Password,Paramsstr.  AppName,ck);
 svr.PrepareByMoney(ck, Paramsstr.ClientId, Paramsstr.MeterNumber, Paramsstr.Money, 0, cal);
 tr_bl:= svr.GetInvoiceData(ck,svr.Confirm(ck));
 With Result do
 Begin
  Branch_Code := tr_bl[0][1];
  Items[0].Item_Descripcion := tr_bl[1][0][0];
  Items[0].Item_Value := tr_bl[1][0][1];
 End;
End;

Casimiro Notevi 20-07-2012 22:03:43

Hola, ¿esta pregunta es la misma que esta otra?


La franja horaria es GMT +2. Ahora son las 08:46:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi