Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: TreeView nach Nodes sortieren

  Alt 5. Mai 2008, 08:02
Moin,

wenn ich den String MM/YYYY als gegeben ansehe, dann funktioniert die Sortierung so:

Delphi-Quellcode:
type
  TDemoForm = class(TForm)
    TreeView: TTreeView;
    Button: TButton;
    procedure FormCreate(Sender: TObject);
    procedure TreeViewCompare(Sender: TObject; Node1, Node2: TTreeNode;
      Data: Integer; var Compare: Integer);
    procedure ButtonClick(Sender: TObject);
  private
    fs: TFormatSettings;
  end;

var
  DemoForm: TDemoForm;

implementation

{$R *.dfm}

uses
  DateUtils;

procedure TDemoForm.FormCreate(Sender: TObject);
begin
  GetLocaleFormatSettings(GetSystemDefaultLCID, fs);
  fs.DateSeparator := '/';
  fs.ShortDateFormat := 'dd/mm/yyyy';
end;

procedure TDemoForm.TreeViewCompare(Sender: TObject; Node1,
  Node2: TTreeNode; Data: Integer; var Compare: Integer);
var
  d1, d2: TDate;
begin
  d1 := StrToDate('01/' + Copy(Node1.Text, 1, 7), fs);
  d2 := StrToDate('01/' + Copy(Node2.Text, 1, 7), fs);
  Compare := CompareDate(d1, d2);
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  TreeView.AlphaSort(False);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat