![]() |
Re: Problem mit XML Turtoial von Chack
Ups, so hab ich jetzt ganz unten in der OnFormCreate.
Nun kommt beim Programmstart die Fehlermeldung: "Der Index der Liste überschreitet das Maximum (-1)" |
Re: Problem mit XML Turtoial von Chack
Hi,
geh mal bitte den SourceCode Zeile für Zeile durch und sag mir bitte wo der Fehler kommt. ;) Chris |
Re: Problem mit XML Turtoial von Chack
Hier kommt er.
Delphi-Quellcode:
for j:=0 to length(NAMES[-1]) do begin
|
Re: Problem mit XML Turtoial von Chack
Hi,
ähm... mal eine Frage: woher kommt das [-1]? :shock: Das steht hoffentlich nicht in der PDF-File drin... :gruebel: Nimm das einfach mal raus. Chris |
Re: Problem mit XML Turtoial von Chack
Das liegt an dem "with" und dem Array "NAMES", weil "Names" auch eine Methode von TStrings ist. Entweder verzichtest du auf das "with", oder du benennst das Array um.
|
Re: Problem mit XML Turtoial von Chack
So hab den Array nun auf "eintraege" geändert und die source auf
Delphi-Quellcode:
.
for j:=0 to length(eintraege)-1 do begin
Jetzt lässt sich das ganze nicht mehr Compilieren die oben angegebene Zeile wird makiert und es folgendes angezeigt: "Inkompatible Typen: 'string' und 'array'." |
Re: Problem mit XML Turtoial von Chack
Nimm´s mir nicht übel, aber du hast einen saumäßigen Code hingeschmiert. Lösch bspw. mal den "id"-Knoten aus deiner XML-Datei und probier´s noch mal. :roll:
Hier eine Variante, die funktioniert:
Delphi-Quellcode:
Neben einem genauen Blick ins Tutorial von Chakotay empfehle ich auch ein paar Grundlagen. Das wäre bei deiner Ratlosigkeit zur Fehlermeldung
procedure TForm1.UpdateList;
const NAMES : array[0..2]of string = ('name','format','ton'); var movies : IXMLDOMNodeList; subNode : IXMLDOMNode; i, j : integer; li : TListItem; begin if(xmldoc = nil) then exit; MovieList.Items.Clear; MovieList.Items.BeginUpdate; movies := xmldoc.selectNodes('//movie'); for i := 0 to movies.length - 1 do begin subnode := movies.item[i].selectSingleNode('id'); li := MovieList.Items.Add; if(subnode <> nil) then li.Caption := subnode.text else li.Caption := '?'; for j := 0 to length(NAMES) - 1 do begin subnode := movies.item[i].selectSingleNode(NAMES[j]); if(subnode <> nil) then li.SubItems.Add(subnode.text) else li.SubItems.Add('unbekannt'); end; end; MovieList.Items.EndUpdate; end; Zitat:
@Chakotay: Wie isses? Woll´n wir dein Tutorial noch zum Thema Doctypes und XSL ergänzen? :mrgreen: |
Re: Problem mit XML Turtoial von Chack
Ähm, ne klappt nicht. Ich glaube es liegt mal wieder an D3. >.<
|
Re: Problem mit XML Turtoial von Chack
Hm, mit
Zitat:
|
Re: Problem mit XML Turtoial von Chack
Das selbe wie vorher.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 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-2025 by Thomas Breitkreuz