![]() |
Zeilen in verschiedenen Labels anzeigen
Hallo,
ich habe eine Xml Datei und lasse einträge in eine ListBox anzeigen.
Delphi-Quellcode:
Jetzt steht in der ListBox
procedure UpdateList;
const Liste: Array[0..7] Of String = ('id', 'main', 'name', 'vorname', 'straße', 'hausnummer', 'postleitzahl', 'ort'); var rdfs: IXmlDomNodeList; id1: IXMLDomNode; main1: IXmlDomNode; I: integer; begin MainFrm.ListBox1.Items.Clear; MainFrm.ListBox1.Items.BeginUpdate; rdfs := XmlDoc.documentelement.selectNodes('adblock'); for i := 0 to rdfs.length -1 do begin id1 := rdfs.item[i].selectsingleNode(liste[0]); main1 := rdfs.item[i].selectsingleNode(liste[1]); MainFrm.ListBox1.Items.Add(id1.text + ' ' + main1.text); end; MainFrm.ListBox1.Items.EndUpdate; end; Name Vorname Wenn dort draufgeklickt wird soll in Label1 der Name in Label2 der Vorname im nächsten die Straße u.s.w stehen. Alerdings hab ich nicht so wirklick ahnung wie ich das umsetzten soll. Und ist eine Xml Datei überhaupt für ein Adressbuch geeignet? Die Xmldatei Zitat:
|
Re: Zeilen in verschiedenen Labels anzeigen
Zitat:
Warum eine ListBox? Ich würde dafür eine ListView nehmen. |
Re: Zeilen in verschiedenen Labels anzeigen
@Sharky: Ich auch. ;)
Zitat:
Problematisch wird´s allerdings in deinem Fall bei der Auswertung ein bisschen. Weil sich in der Listbox Name und Vorname befinden müsstest du das erst wieder auftrennen, bevor du in der XML-Datei nach dem passenden Knoten (selectSingleNode) suchen kannst. Darum wäre, wie Sharky auch schrieb, eine List-View evtl. besser geeignet, weil du dort die einzelnen Informationen (Name, Vorname, usw.) in einzelne Spalten eintragen lassen kannst. Die Umsetzung, an der du im Augenblick wohl "hängst", ist auch kein Problem. Wenn Name und Vorname getrennt vorliegen, dann klick mal ![]() |
Re: Zeilen in verschiedenen Labels anzeigen
Wenn ich wieder TListView nehme, bin ich wieder bei meinem alten problem. (Thread unter diesem S. 2)
|
Re: Zeilen in verschiedenen Labels anzeigen
Zitat:
Delphi-Quellcode:
Und die ID könntest Du sehr schön der Eigenschaft .Data des ListItems zuweisen.
procedure UpdateList;
const Liste: Array[0..7] Of String = ('id', 'main', 'name', 'vorname', 'straße', 'hausnummer', 'postleitzahl', 'ort'); var rdfs: IXmlDomNodeList; id1: IXMLDomNode; main1: IXmlDomNode; I: integer; LI: TListItem; begin MainFrm.ListView1.Items.BeginUpdate; MainFrm.Listview1.Items.Clear; rdfs := XmlDoc.documentelement.selectNodes('adblock'); for i := 0 to rdfs.length -1 do begin id1 := rdfs.item[i].selectsingleNode(liste[0]); main1 := rdfs.item[i].selectsingleNode(liste[1]); LI := Listview1.Items.Add; LI.ImageIndex := 0; LI.Caption := id1.Text; LI.SubItems.Add(main1.text); end; MainFrm.ListView1.Items.EndUpdate; end; |
Re: Zeilen in verschiedenen Labels anzeigen
Zitat:
Delphi-Quellcode:
stehen, so dass die Eigenschaft "Names" fälschlich anstelle des eigentlichen Arrays "NAMES" (s. deine Probleme) benutzt wird. Anders kann ich es mir nicht erklären, denn so sehr haben sich die Komponenten auch unter Delphi 7 nicht geändert. Und ich habe keinerlei Probleme, bspw. den Movie Organizer von Chakotay, auf dem das Tutorial ja grob basiert, mit D7 zu kompilieren und zu starten.
with XXXX do
Der einzige Fehler, der aber IMHO mittlerweile behoben ist, war eben damals der Abdruck in Chakotays Tutorial, wo auch das
Delphi-Quellcode:
drin stand, wodurch es zu dem o.g. Problem kam. Nachdem das behoben war, gab es keine Probleme mehr. Nicht bei mir, soll das heißen.
with XXXX do
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 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