AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Listbox nach Datum sortieren

Ein Thema von Codix32 · begonnen am 29. Mai 2009 · letzter Beitrag vom 4. Jul 2009
 
Popov
(Gast)

n/a Beiträge
 
#18

Re: Listbox nach Datum sortieren

  Alt 24. Jun 2009, 16:55
@Codix32

Ich hab hier noch einen weiteren Ansatz (Code ist ungeprüft, sollte aber funktionieren):

Delphi-Quellcode:
type
  TData = class
    Datum: TDateTime;
    DatumStr: String;
  end;

procedure LBItemHinzufuegen(LB: TListBox; Datum: TDateTime; Str: String);
var
  Data: TData;
begin
  Data := TData.Create;
  Data.Datum := Datum;
  Data.DatumStr := FormatDateTime('yyyy.mm.dd hh:mm:ss', Datum);
  LB.Items.AddObject(Str, Data);
end;

procedure LBItemLoeschen(LB: TListBox; Index: Integer);
var
  Data: TData;
begin
  Data := TData(LB.Items.Objects[Index]);
  Data.Free;
  LB.Items.Delete(Index);
end;

procedure LBAllesLoeschen(LB: TListBox);
var
  Data: TData;
  i: Integer;
begin
  for i := LB.Items.Count - 1 downto 0 do
  begin
    Data := TData(LB.Items.Objects[i]);
    Data.Free;
    LB.Items.Delete(i);
  end;
end;

procedure LBSortieren(LB: TListBox);
var
  Data: TData;
  i: Integer;
  s: String;
begin
  for i := 0 to LB.Items.Count - 1 do
  begin
    Data := TData(LB.Items.Objects[i]);

    s := Data.DatumStr; // s enthält den String zum sortieren


    // im Data.DatumStr und Data.Datum befinden sich jetzt das Datum als Sting
    // und als Datum. Diese Werte sind unabhängig von dem Text-Inhalt in Items[i],
    // können also eine beliebige Formatierung haben, also auch eine die eine
    // alphabetische Sortierung erleichtet.

    // ... hier die eigene Sortier-Routine
  end;
end;
Der Unterschied hier ist, daß du hier die Daten noch zusätzlich als Objekt an die Items heftest. Bei der Sortierung beachtest du dann die Texte in den Items nicht und sortierst anhand der Daten im Objekt. Der Vorteil ist, da0 du das Datum im Item String so schreiben kannst wie du willst. Warum? Weil es nicht bei der Sortierung beachtet wird.

EDIT:

In Prozedur LBItemLoeschen eine vergessene Zeile hinzugefügt.
  Mit Zitat antworten Zitat
 


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 16:48 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