![]() |
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:
wenn die letzte Zeile ausgeführt wird kommt die Fehlermeldung
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; . . 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 |
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: |
Re: Objektverweis wurde nicht auf eine Objektinstanz festgel
Hallo, habe auch ein ähnliches Problem. Bekomme die selber Fehlermeldung
Delphi-Quellcode:
Der Fehler kommt allerdings nicht wenn ich
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';
Delphi-Quellcode:
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
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'; |
Re: Objektverweis wurde nicht auf eine Objektinstanz festgel
Nun, du solltest order auch irgendwo instanziieren :wink: .
|
Re: Objektverweis wurde nicht auf eine Objektinstanz festgel
was meinst du genau mit
Zitat:
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:
danke
oi : Array[0..1] of OrderItemType;
pn : Array of ProductName; |
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