![]() |
Datumliste
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe nach einer Datumliste gesucht, aber keine gefunden. Also habe ich selber eine geschrieben (s.u.). Wer kann mir Tipps zur Optimierung geben, insbesondere was das Freigeben des Speichers betrifft?
Delphi-Quellcode:
Die Projektdateien sind als Anhang beigefügt.
type
TDatumObj = class Datum: TDate; Name: string; Kommentar: string; end; TListSortCompare = function (Datum1, Datum2: Pointer): Integer; var DatumListe: TList; function DatumVergleichen(Datum1, Datum2: Pointer): Integer; begin if TDatumObj(Datum1).Datum > TDatumObj(Datum2).Datum then Result := 1 else if TDatumObj(Datum1).Datum < TDatumObj(Datum2).Datum then Result := -1 else Result := 0; end; procedure TForm1.btn1Click(Sender: TObject); var NeuesDatum: TDatumObj; TageDanach, i: integer; begin Randomize; for i := 1 to 10 do begin NeuesDatum := TDatumObj.Create; TageDanach := Random(100); NeuesDatum.Datum := IncDay(Today, TageDanach); NeuesDatum.Name := IntToStr(TageDanach) + ' Tage danach'; NeuesDatum.Kommentar := ' (Kein Kommentar!)'; DatumListe.Add(NeuesDatum); end; DatumListe.Sort(@DatumVergleichen) ; ListBox1.Items.Clear; for i := 0 to DatumListe.Count - 1 do begin ListBox1.Items.Add(DateToStr(TDatumObj(DatumListe[i]).Datum) + ': ' + TDatumObj(DatumListe[i]).Name + TDatumObj(DatumListe[i]).Kommentar); end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var i: integer; begin for i := 0 to DatumListe.Count - 1 do TDatumObj(DatumListe[i]).Free; DatumListe.Free; end; procedure TForm1.FormCreate(Sender: TObject); begin DatumListe := TList.Create; end; |
Re: Datumliste
blöd gefragt, aber wozu braucht man das?
Beim Freigeben solltest Du besser immer von oben nach unten zählen lassen (also for i := x downto 0 do). |
Re: Datumliste
Zitat:
Zitat:
Aber sonst hast du recht: Wenn etwas zerstört wird, sollte man immer von oben anfangen ... ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 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