Guten Abend,
ich habe zu meinem Thema noch eine Frage.
Wenn das Produkt nicht bei der Stock Abfrage gefunden wird, wird ein Zugriffsfehler ausgeworfen (Siehe Screenshots).
Dies passiert, wenn er eine isZahl Abfrage startet. Wenn das Produkt nicht gefunden wurde beim Distri, dann ist StockNode = nil und kann das nicht als isZahl prüfen.
Habt Ihr eine Idee, wie ich das umgehen kann?
Delphi-Quellcode:
CoInitialize(nil);
try
ImageVerfügbar[n] := TUniImage.Create(self);
ImageVerfügbar[n].Parent := PanelArray[n];
//ImageVerfügbar[n].SetBounds( ButtonArray[n].Left - 25 , ButtonArray[n].Top , 25, 25);
ImageVerfügbar[n].SetBounds( PanelArray[n].Width - 25 , 5 , 20, 20);
ImageVerfügbar[n].Center := true;
ImageVerfügbar[n].Stretch := true;
ImageVerfügbar[n].ShowHint := true;
UniMemo1.Clear;
UniMemo1.Lines.Text := UniMainModule.idhttp1.Get('https://xxx.de/ws/stock?key=XXXXX&manufacturerid=' + WarenkorbButtonArray[n].Hint + '&real=1');
xmlDoc := LoadXMLData(UniMemo1.Lines.Text);
stockNode := TXpathHelper.SelectNode(xmlDoc.DocumentElement, '/stock/articlelist/article/stock');
if not isZahl(stockNode.Text) then stockNode.Text := '0';
if StrToInt(stockNode.Text) >= 1 then
begin
ImageVerfügbar[n].Picture.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\files\pics\Verfügbarkeit\symbol_richtig.jpg');
ImageVerfügbar[n].Hint := stockNode.Text + ' Stück verfügbar.' + #10
+ ' - Dieses Produkt befindet sich momentan in unserem Zentrallager.' + #10
+ ' - Restmenge kann innerhalb von ca. 5-10 Werktagen nachgeliefert werden.';
end
else
begin
ImageVerfügbar[n].Picture.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\files\pics\Verfügbarkeit\symbol_falsch.jpg');
ImageVerfügbar[n].Hint := 'Liefertermin noch unbestimmt' + #10
+ ' - Dieses Produkt befindet sich momentan nicht in unserem Zentrallager.' + #10
+ ' - Wir erwarten in den nächsten Tagen einen Wareneingang und wird umgehend nachgeliefert.';
end;
finally
CoUninitialize;
end;