Einzelnen Beitrag anzeigen

jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#1

Listview nach Datum sortieren

  Alt 26. Nov 2017, 02:17
Moin Moin,

ich habe mir eine kleine Prozedur zusammengebastelt um eine Listview nach dem Datum
im Caption zu sortieren. Das funktioniert soweit auch gut, nur sieht der Code ziemlich
bescheiden (Nett ausgedrückt). Daher wollte ich mal Fragen wie man es besser machen
kann.


Delphi-Quellcode:
function FindLow (Da:TDate): boolean;
var
i : integer;
NewDa : Tdate;
begin
result := false;
NewDa := Da;
for I := 0 to frmMain.lv1.Items.Count -1 do
    if (strtodate(frmMain.lv1.Items[i].Caption) < Da) then
    NewDa := strtodate(frmMain.lv1.Items[i].Caption);
if Da = NewDa then result := true;
end;

Procedure SortbyDate;
var
i: integer;
aItem : TListItem;
begin
frmMain.listview1.Clear;
repeat
for i:= frmMain.lv1.Items.Count -1 downto 0 do
  if FindLow(strtodate(frmMain.lv1.Items[i].Caption))=true then
     begin
     aItem := frmMain.Listview1.Items.Add;
     aItem.Caption := frmMain.lv1.Items[i].Caption;
     aItem.SubItems.Add(frmMain.lv1.Items[i].SubItems[0]);
     frmMain.lv1.Items[i].Delete;
     end;
until frmMain.lv1.Items.Count = 0;
end;
Wenn man die Prozedur SortByDate ausführt wird die die Listview durchlaufen
und das Ergebnis dann sortiert in einer zweiten Listview ausgegeben.

Danke für die Hilfe
  Mit Zitat antworten Zitat