Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Prism Objektverweis wurde nicht auf eine Objektinstanz festgelegt (https://www.delphipraxis.net/61025-objektverweis-wurde-nicht-auf-eine-objektinstanz-festgelegt.html)

ueding 16. Jan 2006 08:48


Objektverweis wurde nicht auf eine Objektinstanz festgelegt
 
Hallo
ich Arbeite mit dem eBay SDK-Kit und habe ein Problem beim abfragen von eingestellten Artikeln.


Delphi-Quellcode:
var
I       : Integer;
itemt   : Itemtype;
s       : string;
s1       : string;
s2       : string;

function Tform1.....
begin
itemt := itemtype.Create;
.
.
.

s := itemt.ItemID;
s1 := itemt.Title;
s2 := itemt.SubTitle;
.
.
.

i := itemt.ShippingDetails.ShippingServiceOptions.Count;
.
.
wenn die letzte Zeile ausgeführt wird kommt die Fehlermeldung

Objektverweis wurde nicht auf eine Objektinstanz festgelegt

kann mir jemand weiterhelfen wo ich den Fehler suchen muss?
Ich habe auch schon gegoogelt, es giebt eine Menge Antworten aber die beziehen sich leider nicht auf Delphi.

Danke schonmal

Gregor

Elvis 16. Jan 2006 09:07

Re: Objektverweis wurde nicht auf eine Objektinstanz festgel
 
Das ist die StiNo Read AV in .Net und wie du sicher schon bemerkt hast, zeigt irgendeine deiner Variablen auf nil.
Könntest du vllt ein kompilierbares Beispiel (kein Form, einfach nur eine Methode/Klasse...) und die url des WSDLs zeigen? Dann wären die Chancen wesentlich höher, dass dir jemand helfen kann. :zwinker:

ZeroQool007 19. Jan 2006 15:03

Re: Objektverweis wurde nicht auf eine Objektinstanz festgel
 
Hallo, habe auch ein ähnliches Problem. Bekomme die selber Fehlermeldung

Delphi-Quellcode:
unit WinForm1;

interface

uses
  System.Drawing, System.Collections, System.ComponentModel,
  System.Windows.Forms, System.Data,
  TecCom,
  TecCom.OpenMessaging,
  TecCom.OpenMessaging.dto,
  TecCom.OpenMessaging.Caller,
  //TecCom.OpenMessaging.order,
  TecCom.OpenMessaging.Order.TXML.V4_1.Order,
  TecCom.OpenMessaging.Order.TXML.V4_1.Common,
  TecCom.OpenMessaging.Warranty,
  TecCom.OpenMessaging.localhost,
  SysUtils
;

type
  TWinForm1 = class(System.Windows.Forms.Form)
  {$REGION 'Vom Designer verwalteter Code'}
  strict private
    /// <summary>
    /// Erforderliche Designervariable.
    /// </summary>
    Components: System.ComponentModel.Container;
    Button1: System.Windows.Forms.Button;
    RichTextBox1: System.Windows.Forms.RichTextBox;
    /// <summary>
    /// Erforderliche Methode zur Unterstützung des Designers -
    /// ändern Sie die Methode nicht mit dem Quelltext-Editor
    /// </summary>
    procedure InitializeComponent;
    procedure Button1_Click(sender: System.Object; e: System.EventArgs);
  {$ENDREGION}
  strict protected
    /// <summary>
    /// Ressourcen nach der Verwendung bereinigen
    /// </summary>
    procedure Dispose(Disposing: Boolean); override;
  private
    { Private-Deklarationen }
    order : TxmlOrder;
    oi   : Array[0..1] of OrderItemType;
    pn   : Array of ProductName;
    fc   : FunctionCaller;
    fcr  : FunctionCallRequest;
    pd   : Array of ParameterData;
    resp : FunctionCallResponse;
    OrderResponse : TxmlOrdRsp;
  public
    constructor Create;
  end;

  [assembly: RuntimeRequiredAttribute(TypeOf(TWinForm1))]

implementation

{$AUTOBOX ON}

{$REGION 'Vom Windows Form-Designer erzeugter Code'}
/// <summary>
/// Erforderliche Methode zur Unterstützung des Designers --
/// ändern Sie die Methode nicht mit dem Quelltext-Editor
/// </summary>
procedure TWinForm1.InitializeComponent;
begin
  Self.Button1 := System.Windows.Forms.Button.Create;
  Self.RichTextBox1 := System.Windows.Forms.RichTextBox.Create;
  Self.SuspendLayout;
  // 
  // Button1
  // 
  Self.Button1.Location := System.Drawing.Point.Create(88, 232);
  Self.Button1.Name := 'Button1';
  Self.Button1.TabIndex := 0;
  Self.Button1.Text := 'Button1';
  Include(Self.Button1.Click, Self.Button1_Click);
  // 
  // RichTextBox1
  // 
  Self.RichTextBox1.Location := System.Drawing.Point.Create(64, 64);
  Self.RichTextBox1.Name := 'RichTextBox1';
  Self.RichTextBox1.TabIndex := 1;
  Self.RichTextBox1.Text := 'RichTextBox1';
  // 
  // TWinForm1
  // 
  Self.AutoScaleBaseSize := System.Drawing.Size.Create(5, 13);
  Self.ClientSize := System.Drawing.Size.Create(292, 273);
  Self.Controls.Add(Self.RichTextBox1);
  Self.Controls.Add(Self.Button1);
  Self.Name := 'TWinForm1';
  Self.Text := 'WinForm1';
  Self.ResumeLayout(False);
end;
{$ENDREGION}

procedure TWinForm1.Dispose(Disposing: Boolean);
begin
  if Disposing then
  begin
    if Components <> nil then
      Components.Dispose();
  end;
  inherited Dispose(Disposing);
end;

constructor TWinForm1.Create;
begin
  inherited Create;
  //
  // Erforderlich für die Unterstützung des Windows Forms-Designers
  //
  InitializeComponent;
  //
  // TODO: Fügen Sie nach dem Aufruf von InitializeComponent Konstruktorcode hinzu.
  //
end;

procedure TWinForm1.Button1_Click(sender: System.Object; e: System.EventArgs);
var
  TempAnfrage : String;
  TempAntwort : String;
  AnzahlAntworten : Integer;
begin
  order.OrderHeader.OrderType                                := OrderTypeIDs.Order;
  order.OrderHeader.OrderFunction                            := OrderFunctionTypes.Original;
  order.OrderHeader.BuyerParty.PartyNumber.Qualifier         := TecCom.OpenMessaging.Order.TXML.V4_1.Common.PartyNumberTypeQualifiers.SupplierNumber;
  order.OrderHeader.BuyerParty.PartyNumber.PartyNumberValue  := '4712';
  order.OrderHeader.SellerParty.PartyNumber.Qualifier        := TecCom.OpenMessaging.Order.TXML.V4_1.Common.PartyNumberTypeQualifiers.BuyerNumber;
  order.OrderHeader.SellerParty.PartyNumber.PartyNumberValue := '32';
  order.OrderHeader.OrderIssueDate.DateValue.DateValue       := now;
  order.OrderHeader.OrderProcessing.DispatchMode             := DispatchModes.Normal;
  order.OrderHeader.Currency                                 := 'EUR';
Der Fehler kommt allerdings nicht wenn ich

Delphi-Quellcode:
TecCom.OpenMessaging.Order.TXML.V4_1.Order.TxmlOrder.Create.OrderHeader.OrderType                               := TecCom.OpenMessaging.Order.TXML.V4_1.Order.OrderTypeIDs.Order;
  TecCom.OpenMessaging.Order.TXML.V4_1.Order.TxmlOrder.Create.OrderHeader.OrderFunction                           := TecCom.OpenMessaging.Order.TXML.V4_1.Order.OrderFunctionTypes.Original;
  TecCom.OpenMessaging.Order.TXML.V4_1.Order.TxmlOrder.Create.OrderHeader.BuyerParty.PartyNumber.Qualifier        := TecCom.OpenMessaging.Order.TXML.V4_1.Common.PartyNumberTypeQualifiers.SupplierNumber;
  TecCom.OpenMessaging.Order.TXML.V4_1.Order.TxmlOrder.Create.OrderHeader.BuyerParty.PartyNumber.PartyNumberValue := '4712';
  TecCom.OpenMessaging.Order.TXML.V4_1.Order.TxmlOrder.Create.OrderHeader.SellerParty.PartyNumber.Qualifier       := TecCom.OpenMessaging.Order.TXML.V4_1.Common.PartyNumberTypeQualifiers.BuyerNumber;
  TecCom.OpenMessaging.Order.TXML.V4_1.Order.TxmlOrder.Create.OrderHeader.SellerParty.PartyNumber.PartyNumberValue := '32';
  TecCom.OpenMessaging.Order.TXML.V4_1.Order.TxmlOrder.Create.OrderHeader.OrderIssueDate.DateValue.DateValue      := now;
  TecCom.OpenMessaging.Order.TXML.V4_1.Order.TxmlOrder.Create.OrderHeader.OrderProcessing.DispatchMode            := TecCom.OpenMessaging.Order.TXML.V4_1.Order.DispatchModes.Normal;
  TecCom.OpenMessaging.Order.TXML.V4_1.Order.TxmlOrder.Create.OrderHeader.Currency                                := 'EUR';
mache. Aber ich muss es nach der ersten Methode machen, weil ich die Array Felder mit der Klasse brauche....es sei denn jemand hat eine bessere Lösung....big thx

Khabarakh 19. Jan 2006 15:17

Re: Objektverweis wurde nicht auf eine Objektinstanz festgel
 
Nun, du solltest order auch irgendwo instanziieren :wink: .

ZeroQool007 19. Jan 2006 15:22

Re: Objektverweis wurde nicht auf eine Objektinstanz festgel
 
was meinst du genau mit
Zitat:

instanziieren
...sorry für die dumme Frage...ist kurz vor dem WE u ich peile in der Firma gar nichts mehr! =)


edt.

habs schon! =)
Delphi-Quellcode:
order := TxmlOrder.Create;

so feierabend für heute....have a nice weekend



edt2

zu früh gefreut.... wie instanziiere ich denn
Delphi-Quellcode:
    oi   : Array[0..1] of OrderItemType;
    pn   : Array of ProductName;
danke

ZeroQool007 23. Jan 2006 08:08

Re: Objektverweis wurde nicht auf eine Objektinstanz festgel
 
Hmmm....kann mir keiner helfen?! :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz