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