Thema: Delphi StringGrid sortieren

Einzelnen Beitrag anzeigen

Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#14

Re: StringGrid sortieren

  Alt 6. Nov 2008, 20:45
Zitat von NetSonic:
Allerdings enthalten die zu sortieren Spalten ein Datum als String im Format TT.MM.JJJJ und dies möchte ich korrekt sortieren.
Ja, mit dieser CompareStringGridRows-Funktion:
Delphi-Quellcode:
var col,dir: integer;

function CompareStringGridRows(item1,item2: Pointer):integer;
var s1,s2: string;
    n1,n2: integer;
begin
  s1 :=@TStrings(item1).Strings[col];
  s2 :=@TStrings(item2).Strings[col];

// Jahr
  n1 :=strtoint(substr(s1, -4, 4));
  n2 :=strtoint(substr(s2, -4, 4));
  
  if n1 < n2 then
  begin
    result :=dir;
    exit;
  else if n1 > n2 then
  begin
    result :=dir*-1;
    exit;
  end;

//Monat:

  n1 :=strtoint(substr(s1, 4, 2));
  n2 :=strtoint(substr(s2, 4, 2));

  if n1 < n2 then
  begin
    result :=dir;
    exit;
  else if n1 > n2 then
  begin
    result :=dir*-1;
    exit;
  end;

//Tag:

  n1 :=strtoint(substr(s1, 0, 2));
  n2 :=strtoint(substr(s2, 0, 2));

  if n1 < n2 then
  begin
    result :=dir;
    exit;
  else if n1 > n2 then
  begin
    result :=dir*-1;
    exit;
  end;
  result :=0;
end;
ungetestet und alles. Die Funkion substr gibt es in Delphi glaube ich nicht. D musst du glaube ich copy nehmen. Ich denke, du kannst dir denken, wie das gedacht ist...
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat