AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Zeilen in verschiedenen Labels anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Zeilen in verschiedenen Labels anzeigen

Ein Thema von citybreaker · begonnen am 23. Apr 2004 · letzter Beitrag vom 23. Apr 2004
Antwort Antwort
citybreaker
(Gast)

n/a Beiträge
 
#1

Zeilen in verschiedenen Labels anzeigen

  Alt 23. Apr 2004, 10:49
Hallo,

ich habe eine Xml Datei und lasse einträge in eine ListBox anzeigen.

Delphi-Quellcode:
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;
Jetzt steht in der ListBox

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:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rdf>
<adblock>
<id>1</id>
<main></main>
<name></name>
<vorname></vorname>
<straße><straße>
<hausnummer></hausnummer>
<postleitzahl></postleitzahl>
<ort></ort>
</adblock>
</rdf>
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Zeilen in verschiedenen Labels anzeigen

  Alt 23. Apr 2004, 10:52
Zitat von citybreaker:
...Jetzt steht in der ListBox ...
Hai citybreaker,

Warum eine ListBox? Ich würde dafür eine ListView nehmen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#3

Re: Zeilen in verschiedenen Labels anzeigen

  Alt 23. Apr 2004, 11:32
@Sharky: Ich auch.

Zitat von citybreaker:
Und ist eine Xml Datei überhaupt für ein Adressbuch geeignet?
Klar, stellt doch Luckie gerade unter Beweis. Und speziell bei Adressen, die ja keine allzu tief verschachtelten Strukturen aufweisen (eigentlich, IMHO), ist XML durchaus geeignet.

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 hier. Willst du ganz auf Nummer sicher gehen (für den Fall, dass evtl. doch zwei identische Namen und Vornamen in der XML-Datei stehen), dann nimm für die Suche nicht "selectSingleNode" sondern auch "selectNodes" und lass alle Fundstücke in einem separaten Fenster anzeigen.
  Mit Zitat antworten Zitat
citybreaker
(Gast)

n/a Beiträge
 
#4

Re: Zeilen in verschiedenen Labels anzeigen

  Alt 23. Apr 2004, 12:15
Wenn ich wieder TListView nehme, bin ich wieder bei meinem alten problem. (Thread unter diesem S. 2)
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Zeilen in verschiedenen Labels anzeigen

  Alt 23. Apr 2004, 12:25
Zitat von citybreaker:
Wenn ich wieder TListView nehme...
Wo ist der Unterschied ob Du die Daten in eine TListBox schreibst oder in ein TListView?

Delphi-Quellcode:
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;
Und die ID könntest Du sehr schön der Eigenschaft .Data des ListItems zuweisen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#6

Re: Zeilen in verschiedenen Labels anzeigen

  Alt 23. Apr 2004, 13:34
Zitat von citybreaker:
Wenn ich wieder TListView nehme, bin ich wieder bei meinem alten problem. (Thread unter diesem S. 2)
Wie gesagt: Ich glaube, bei dir kommen sich nach wie vor zwei Controls/Komponenten/was auch immer in die Quere, die die Eigenschaft "NAMES" benutzen. Und irgendwo hast du evtl. noch ein
with XXXX do 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.

Der einzige Fehler, der aber IMHO mittlerweile behoben ist, war eben damals der Abdruck in Chakotays Tutorial, wo auch das
with XXXX do 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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz