![]() |
XML - Zu viele Parameter
Moin,
ich habe eine Procedure welche folgenden Inhalt hat:
Delphi-Quellcode:
procedure TF_Hauptfenster.Add(XML_File: TStringList);
begin XML_File.Add(' <Holyday>'); XML_File.Add(' <Date>'+Edit1.Text+'</Date>'); XML_File.Add(' </Holyday>'); end; Diese Procedure wird in einer nachfolgenden benötigt:
Delphi-Quellcode:
Ich bekomme folgende Fehlermeldung, in der markierten Zeile: Zu viele Parameter.
procedure TF_Hauptfenster.Button1Click(Sender: TObject);
var i: Integer; MyItem: TListItem; XML_File: TStringList; begin XML_File:=TStringList.Create; MyItem:= LV_Aufgaben.Items.Add; MyItem.SubItems.Add(Edit1.Text); XML_File.Add('<Holydays>'); For i:=0 to LV_Aufgaben.Items.Count-1 do begin Add(XML_File, i); ------------> Zu viele Parameter end; XML_File.Add('</Holydays>');} XML_File.SaveToFile(ExtractFilePath(Application.ExeName)+'test.xml'); end; Wo liegt der Fehler, wie kann ich das Problem lösen? MaM |
Re: XML - Zu viele Parameter
Deine Funktion Add möchte nur eine Stringliste
Du willst Ihr eine Stringliste und ein i andrehen |
Re: XML - Zu viele Parameter
Zitat:
MaM |
Re: XML - Zu viele Parameter
Was würde das bringen? Du benutzt das i doch in der Prozedur gar nicht. Warum willst du es dann mit übergeben? :roll:
|
Re: XML - Zu viele Parameter
Ok, dann anders.
Wenn ich einen Wert eintrage so steht er korrekt im ListView und auch die Datei wird gesichert. Nur, trage ich einen 2. Wert ein, so wird ein neuer Eintrag in der XMl Datei eingefügt, jedoch der alte wird überschrieben (im ListView wird es richtig dargestellt). ---------------------- - <Holydays> - <Holyday> <Date>Edit2</Date> </Holyday> - <Holyday> <Date>Edit2</Date> </Holyday> </Holydays> ---------------------- Was mach ich falsch? MaM |
Re: XML - Zu viele Parameter
*schieb*
MaM |
Re: XML - Zu viele Parameter
Hallo MaM,
wahrscheinlich bin ich nicht der einzige hier, der sich keinen rechten Reim auf deine Beschreibung machen kann. Freundliche Grüße vom marabu |
Re: XML - Zu viele Parameter
Nun ja, auch wenn ich mir nicht ganz sicher bin, ob ich dich richtig verstanden habe, aber wenn du dir etwas überschreibst, liegt das doch wohl daran, das du die TStringList XML_File mit jedem Aufruf deiner Methode neu anlegst. Die enthält natürlich nicht mehr die alten Werte (und du müllst dir nebenbei bemerkt den Speicher zu). Die solltest du etwas globaler anlegen (also als Klassenvariable), im Create erzeugen und im destroy auch wieder Freigeben!
Jedenfalls dürfte das dein Problem sein, wenn ich dich richtig verstehe. Gruß Der Unwissende |
Re: XML - Zu viele Parameter
Wenn ich genau lese, dann werden zwei Einträge erfolgreich einer ListView hinzugefügt. Nach dem Speichern als XML-Dokument findet man aber nur den ersten Eintrag in der Datei. Der gezeigte Code gibt das nicht her. Das Neuanlegen der StringList scheint in Ordnung zu sein, da die StringList ja nur temporär zum Aufbau des XML-Dokumentes und dessen Speicherung verwendet wird. Was man bemängeln sollte, ist das fehlende Free für die StringList - aber auch das kann nicht der Grund für das beschriebene Verhalten sein.
Grüße vom marabu |
Re: XML - Zu viele Parameter
Na ja, prinzipiell hast du recht mit
Zitat:
Gruß Der Unwissende |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 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