![]() |
TListView: Wie speichert/lädt man Daten?!
Hallo!
Ich habe ein großes Problem, bzw. habe keine Ahnung, wie die TListView funktionieren. Folgendes: Ich wollte ein Termin-Verwaltungstool proggen, bei dem man die Daten der Termine ganz normal in Edit-Feldern eingibt und diese in eine Ini-Datei gespeichert werden (z.B. Datum=...). Diese Ini-Datei soll dann ausgelesen werden und die einzelnen Daten in die jeweilige Spalte (vorher angelegt) der TListView eingetragen werden. Doch da ist mein Problem: Ich weiß nicht, wie man Daten in die TListView einliest. Ich habe im Moment 3 Spalten (Datum, Uhrzeit, Betreff). In der Ini Datei sind sie so gespeichert: [Datum - Uhrzeit] Datum=... Uhrzeit=... Betreff=... (Ich weiß, das die Sache mit der Ini katastrophal ist, aber nur zur Erklärung) Wie kann ich nun den Betreff, das Datum und die Uhrzeit in die jeweiligen Spalten einlesen und das auch mit mehren Terminen? Kann mir jemand helfen? mcXsc |
Re: TListView: Wie speichert/lädt man Daten?!
Delphi-Quellcode:
(Edit: hab doch glatt vergessen das Delphi-Code-Tag zu schleissen)
var
li: TListItem; begin ... li := ListView1.Items.Add; li.Caption := sDatum; // 1te Spalte li.SubItems.Add(sUhrzeit); // 2te Spalte li.SubItems.Add(sBetreff); // 3te Spalte ... end; |
Re: TListView: Wie speichert/lädt man Daten?!
Ah ja, das habe ich gesucht. Danke!
|
Re: TListView: Wie speichert/lädt man Daten?!
Okay, den ersten Eintrag kann ich anzeigen... aber nicht alle.... Wie wiederhole ich das mit der nächsten Ini-Section?
|
Re: TListView: Wie speichert/lädt man Daten?!
Du musst einfach den block wiederholen mit den werten für den nächsten eintrag:
Delphi-Quellcode:
li := ListView1.Items.Add;
li.Caption := sDatum; // 1te Spalte li.SubItems.Add(sUhrzeit); // 2te Spalte li.SubItems.Add(sBetreff); // 3te Spalte |
Re: TListView: Wie speichert/lädt man Daten?!
Ja, das weiß ich ja. ABer genau da ist das Problem: Wie mache ich das?
|
Re: TListView: Wie speichert/lädt man Daten?!
Das kann ich dir auch nicht sagen, ich weiss ja nicht wie du die Daten abgespeichert hast, oder wie deine Daten vorliegen oder was auch immer.
|
Re: TListView: Wie speichert/lädt man Daten?!
Habe ich doch. Beispiel meiner Ini-Datei:
Zitat:
|
Re: TListView: Wie speichert/lädt man Daten?!
Delphi-Quellcode:
Ich habs zwar nicht ausprobiert (werd ich auch nicht), sollte aber so funktionieren. Wer Fehler findet darf sie behalten (oder selbst korrigieren) *g*
var
i: integer; Sec: TStrings; Ini: TIniFile; sDatum, sUhrzeit, sBetreff: String; li: TListItem; begin Sec := TStrings.Create; Ini := TIniFile.Create('Termine.ini'); Ini.ReadSections(Sec); for i := 0 to Sec.Count - 1 do begin sDatum := ini.ReadString(Sec.Strings[i], 'Datum', ''); sUhrzeit := ini.ReadString(Sec.Strings[i], 'Uhrzeit', ''); sBetreff:= ini.ReadString(Sec.Strings[i], 'Betreff', ''); li := ListView1.Items.Add; li.Caption := sDatum; li.SubItems.Add(sUhrzeit); li.SubItems.Add(sBetreff); end; Ini.Free; Sec.Free; end |
Re: TListView: Wie speichert/lädt man Daten?!
Liste der Anhänge anzeigen (Anzahl: 1)
Das geht auch nicht. Da kommt immer die Fehlermeldung "Abstrakter Fehler". Ich habe den QUelltext mal angehangen, vielleicht kann mir damit ja jemand helfen...
|
Re: TListView: Wie speichert/lädt man Daten?!
Ich habs mal getestet.
1) statt TStrings musst du TStringList verwenden 2) for i := 0 to Sec.Count - 1 do begin Warum es dann aber keine Sections findet weiss ich nicht. Wenn ich es mit WIN.INI probiere funktioniert es (mal abgesehen davon dass keine Werte in das ListView geschrieben werden sondern nur leere Zeilen hinzugefügt werden. Ich schlage vor du überlegst dir ne andere Art und Weise des abspeicherns deiner Werte. |
Re: TListView: Wie speichert/lädt man Daten?!
Hab den anderen Fehler gefunden. Der sucht die Ini Datei im Windows Verzeichnis, findet die natürlich nicht, und erstellt eine neue, die natürlich leer ist.
hier nochmal der komplett korrigierte sourcecode
Delphi-Quellcode:
var
i: integer; Sec: TStringList; Ini: TIniFile; sDatum, sUhrzeit, sBetreff: String; li: TListItem; begin Sec := TStringList.Create; Ini := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Termine.ini'); Ini.ReadSections(Sec); for i := 0 to Sec.Count-1 do begin sDatum := ini.ReadString(Sec.Strings[i], 'Datum', ''); sUhrzeit := ini.ReadString(Sec.Strings[i], 'Uhrzeit', ''); sBetreff:= ini.ReadString(Sec.Strings[i], 'Betreff', ''); li := ListView1.Items.Add; li.Caption := sDatum; li.SubItems.Add(sUhrzeit); li.SubItems.Add(sBetreff); end; Ini.Free; Sec.Free; end; |
Re: TListView: Wie speichert/lädt man Daten?!
Danke Leute! Ihr seid die besten!
|
Re: TListView: Wie speichert/lädt man Daten?!
Zitat:
Delphi-Quellcode:
var
i: integer; Sec: TStringList; Ini: TIniFile; sDatum, sUhrzeit, sBetreff: String; li: TListItem; begin Sec := TStringList.Create; Ini := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Termine.ini'); try Ini.ReadSections(Sec); for i := 0 to Sec.Count-1 do begin sDatum := ini.ReadString(Sec.Strings[i], 'Datum', ''); sUhrzeit := ini.ReadString(Sec.Strings[i], 'Uhrzeit', ''); sBetreff:= ini.ReadString(Sec.Strings[i], 'Betreff', ''); li := ListView1.Items.Add; li.Caption := sDatum; li.SubItems.Add(sUhrzeit); li.SubItems.Add(sBetreff); end; finally Ini.Free; Sec.Free; end; end; |
Re: TListView: Wie speichert/lädt man Daten?!
[12.12.2004 - 12:31]
Datum=12.12.2004 Uhrzeit=12:31 Betreff=Treffen I [13.12.2004 - 12:11] Datum=13.12.2004 Uhrzeit=12:11 Betreff=Treffen II Wie kann ich im oben angebenen Format meine Werte in der Ini speichern? Speziell das Datum und die Uhrzeit in der Section. MaM |
Re: TListView: Wie speichert/lädt man Daten?!
Ich meine natürlich nicht, wie ich generell in eine Ini schreibe, das ist kein Problem. Nur weiß ich nicht, wie ich das Datum und die Uhrzeit in die Section kriege.
MaM |
Re: TListView: Wie speichert/lädt man Daten?!
Delphi-Quellcode:
und dazugehörig:
TIniFile.WriteDate
TIniFile.WriteTime TIniFile.WriteDateTime
Delphi-Quellcode:
die Werte sind jeweils vom Typ TDateTime
TIniFile.ReadDate
TIniFile.ReadTime TIniFile.ReadDateTime |
Re: TListView: Wie speichert/lädt man Daten?!
Zitat:
|
Re: TListView: Wie speichert/lädt man Daten?!
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 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