Einzelnen Beitrag anzeigen

blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Suche Tabellen-VCL mit automatischer Sortierung

  Alt 7. Aug 2008, 14:24
Zitat von DeddyH:
Hallo.

Vielen Dank. Genau sowas suche ich. Einfach aufgebaut und gut handzuhaben.

Ich hab aber irgendwie ein Problem mit der Einbindung. Ich habe mir die Demo-Application abgeschaut, bekomme aber diese kleinen "Sortierpfeile" nicht hin. Ich habe aus der DFM alles rausgeholt.

Das Problem ist, dass ich keine fremden VCLs einbinden kann, weswegen ich die Demo nicht direkt öffnen kann.

So sieht meine Test-Anwendung aus:

Delphi-Quellcode:
uses SortListViews, XPMan;

procedure TForm1.SortListView1CustomSort(Sender: TObject;
  ColIndex: Integer; Str1, Str2: String; var Res: Integer;
  var Handled: Boolean);
var
  n1, n2: Integer;
begin
  if (ColIndex = 2) then
  begin
    n1 := StrToIntDef(Str1, 0);
    n2 := StrToIntDef(Str2, 0);
    if (n1 = n2)
      then Res := 0 else
    if (n1 > n2)
      then Res := 1
      else Res := -1;
    Handled := True;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  SortListView1: TSortListView;
begin
  SortListView1 := TSortListView.Create(Form1);

  SortListView1.Parent := Form1;
  SortListView1.Top := 20;
  SortListView1.Left := 20;
  SortListView1.Width := 300;
  SortListView1.Height := 500;

  SortListView1.ViewStyle := vsReport;
  SortListView1.RowSelect := True;
  SortListView1.ReadOnly := True;
  SortListView1.HideSelection := False;
  SortListView1.OnCustomSort := SortListView1CustomSort;

  with SortListView1.Columns.Add do
  begin
    Caption := 'Blubb';
    Width := 150;
  end;
  with SortListView1.Columns.Add do
  begin
    Caption := 'Blubb';
    Width := 100;
    Alignment := taRightJustify;
  end;

  with SortListView1.Items.Add do
  begin
    Caption := 'Item 1';
    SubItems.Add('aaaaa');
    SubItems.Add('12345');
    SubItems.Add('kkkkk');
  end;
  with SortListView1.Items.Add do
  begin
    Caption := 'Item 2';
    SubItems.Add('iiiii');
    SubItems.Add('72334');
    SubItems.Add('sjfjs');
  end;
  with SortListView1.Items.Add do
  begin
    Caption := 'Item 3';
    SubItems.Add('uuiiu');
    SubItems.Add('92843');
    SubItems.Add('jhase');
  end;
  with SortListView1.Items.Add do
  begin
    Caption := 'Item 4';
    SubItems.Add('iouri');
    SubItems.Add('28342');
    SubItems.Add('lkasj');
  end;
  with SortListView1.Items.Add do
  begin
    Caption := 'Item 5';
    SubItems.Add('ooooo');
    SubItems.Add('91929');
    SubItems.Add('nsjsk');
  end;

  // SortListView1.Refresh;
end;
In der DFM der Demo steht auch nur folgendes:

Code:
  object SortListView1: TSortListView
    Left = 16
    Top = 24
    Width = 465
    Height = 337
    Columns = <
      item
        Caption = 'Column 1'
        Width = 100
      end
      item
        Caption = 'Column 2'
        Width = 100
      end
      item
        Alignment = taRightJustify
        Caption = 'Numbers'
        Width = 100
      end
      item
        Caption = 'Column 4'
        Width = 100
      end>
    HideSelection = False
    ReadOnly = True
    RowSelect = True
    SmallImages = ImageList1
    TabOrder = 0
    ViewStyle = vsReport
    OnCustomSort = SortListView1CustomSort
  end
Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat