Cześć Ślęczałem nad tym cały weekend i naprawdę już nie mam pomysłu, jak to zrobić. Pomóżcie, jestem początkujący i dopiero raczkuję w Delphi. Mam sobie plik.xml zbudowany w ten sposób:
<baza>
<temat>
<tytuł>PC Format</tytuł>
<info>Jakiś tam opis</info>
</temat>
<temat>
<tytuł>Ekspert</tytuł>
<info>Inny Opis</info>
</temat>
<temat>
<tytuł>Chip</tytuł>
<info>Opis będzie</info>
</temat>
</baza>
Jak widać jest mało skomlikowana budowa, ale... Kiedy w procedurze FormCreate wczytuje tematy do Listbox`a (Sorted:=True) wszystkie tematy są wczytywane i automatycznie sortowane alfabetycznie. Problemu by nie było gdybym zmienił Sorted:=False w Listbox, ale wtedy byłaby kaszana z tytułami.
procedure TForm1.FormCreate(Sender: TObject);
var
i : integer;
begin
XML.LoadFromFile('file.xml');
XML.Active:=True;
for i:=0 to XML.DocumentElement.ChildNodes.Count -1 do
Listbox1.Items.Add(XML.DocumentElement.ChildNodes[i].ChildValues['tytuł']);
end;
Problem pojawia się w procedurze OnClick Listboxa. Kiedy klikam na np: PC Format wyskakuje mi opis w Memo: "Opis będzie" zamiast: "Jakiś tam opis", podobnie jest też kiedy wybieram temat Chip, a opis zamiast być: "Opis będzie, to wyskakuje "Jakiś tam opis".
procedure TForm1.ListBox1Click(Sender: TObject);
begin
XML.LoadFromFile('file.xml');
XML.Active:=True;
Memo1.Lines.Clear;
Memo1.Lines.Add(XML.DocumentElement.ChildNodes[Listbox1.ItemIndex].ChildValues['opis']);
end;
Teraz pytanie: Jak posortować dane w pliku xml, chodzi mi o to "drzewko", które byłoby posortowane przy zapisie wg tytułów z przyporządkowanymi do tytułu odpowiednimi opisami lub też zamiast tego...
Jak przyporządkować indexy z listboxa konkretnym tytułom tak, żeby po kliknięciu tytułu wyświetlał sie odpowiedni opis.