Announcement

Collapse
No announcement yet.

OnColumnClick

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • OnColumnClick

    Wie kann ich die Prozedur Tform1.TlistView1ColumnClick(Sender: TObject;
    Column: TListColumn) durch zum Beispiel einem ButtonClick aufrufen.
    In meinem Programm sollen die Einträge einmal nah Name oder Nummer sortiert werden, dies habe ich so realisiert:
    <pre><font size=3>
    function DoColumnSort(Item1, Item2: TListItem; Col: integer): integer; StdCall;
    var
    s1, s2: string;
    begin
    case Col of
    0: begin
    s1:= Item1.Caption;
    s2:= Item2.Caption;
    end;
    else
    if (Item1.SubItems.Count>=Col)and
    (Item2.SubItems.Count>=Col) then
    begin
    s1:= Item1.SubItems[Col-1];
    s2:=Item2.SubItems[Col-1];
    end;
    end;
    Result:= lstrcmp(pchar(s1),pchar(s2));
    end;

    procedure Tform1.TlistView1ColumnClick(Sender: TObject;
    Column: TListColumn);
    var
    lv1: TListView;
    begin
    lv1:= (Sender as TListView);
    lv1.CustomSort(@DoColumnSort,Column.Index);
    end;
    </pre>

    Nun soll dies nicht nur geschehen wenn ich auf den Column klicken sondern auch wenn ich auf einem Button drücke.

  • #2
    <p>Hallo Tim,<br>
    <br>
    einfach dadurch, dass Du die CustomSort in der OnClick des Buttons aufrufst.<br>
    Ich gehe einmal davon aus, dass Du mehrere Buttons zum Sortieren hast. In diesem Fall, kannst Du u.a. das Tag-Property dazu benutzen
    (0=1. Spalte, 1=2. Spalte, ...) um die Spalten zu referentieren.<br>
    Alle Buttons benutzen die gleiche Ereignisroutine.
    <pre>
    procedure Tform1.SortButtonClick(Sender:TObject);
    var spalte:Integer;
    begin
    spalte:=TButton(Sender).Tag;
    ListView1.CustomSort(@DoColumnSort, spalte);
    end;
    <pre>
    Gruß Thomas</p&gt

    Comment

    Working...
    X