AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Listview sortieren über Button?

Ein Thema von Waaaghboss · begonnen am 12. Nov 2004 · letzter Beitrag vom 12. Nov 2004
Antwort Antwort
Benutzerbild von Waaaghboss
Waaaghboss

Registriert seit: 28. Okt 2003
Ort: Schwerin
15 Beiträge
 
Delphi 11 Alexandria
 
#1

Listview sortieren über Button?

  Alt 12. Nov 2004, 13:58
Hi Profies 8) ,

ich möchte meine Listview Auf- bzw. Abwärts sortieren konnen. Das habe ich ja auch schon erfahren, aber ich möchte nicht auf den "Column Sort Button" der Listview drücken, sondern auf ein Label, das dann quasi dadrauf verlinkt!

Kann mir wer Helfen?

Delphi-Quellcode:
procedure TFMain.ListColumnClick(Sender: TObject; Column: TListColumn);
begin
  ColumnToSort := Column.Index;
  if ColumnToSort = LastSorted then
    SortDir := 1 - SortDir
  else
    SortDir := 0;
  LastSorted := ColumnToSort;
  (Sender as TCustomListView).AlphaSort;
end;

procedure TFMain.ListCompare(Sender: TObject; Item1, Item2: TListItem;
  Data: Integer; var Compare: Integer);
var
  ix: integer;
begin
  if ColumnToSort = 0 then
  begin
    if SortDir = 0 then
      Compare := CompareText(Item1.Caption,Item2.Caption)
    else
      Compare := CompareText(Item2.Caption,Item1.Caption);
  end //if ColumnToSort = 0 then
  else
  begin
   ix := ColumnToSort - 1;
   if SortDir = 0 then
     Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix])
   else
     Compare := CompareText(Item2.SubItems[ix],Item1.SubItems[ix]);
  end;
end;

procedure TFMain.AnredeClick(Sender: TObject);
begin
  ... <-- WAS MUSS HIER REIN?
end;
Ich habe es schon mit folgendem probiert, aber er sortiert dabei nur einmal von A bis Z und dann passiert nach erneuten clicken nichts mehr. Ich hätte gerne eine Auf-/Abwärts Sortierung.

Delphi-Quellcode:
procedure TFMain.AnredeClick(Sender: TObject);
begin
  ColumnToSort := 0;
  List.AlphaSort;
end;
Danke schonmal im Voraus, MfG Waaaghboss
Zu denken, was wir hätten tun können, ist eine Tätigkeit, die uns zu denken geben sollte...
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Listview sortieren über Button?

  Alt 12. Nov 2004, 14:06
Hi Waaaghboss,

du musst nur den Click auf eine Spalte simulieren:
ListColumnClick(Sender, ListView1.Columns[0]); Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Waaaghboss
Waaaghboss

Registriert seit: 28. Okt 2003
Ort: Schwerin
15 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Listview sortieren über Button?

  Alt 12. Nov 2004, 14:13
Hi alcaeus,

das habe ich auch schon gemacht, aber dann trat immer ein Fehler auf, wenn ich das Label gedrückt habe "...Exeption der Klasse EInvalid Cast ist aufgetreten..."

Ich weiß nicht, was ich falsch mache...

MfG Waaaghboss
Zu denken, was wir hätten tun können, ist eine Tätigkeit, die uns zu denken geben sollte...
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: Listview sortieren über Button?

  Alt 12. Nov 2004, 14:16
Hi Waaaghboss,

zeig doch mal den Aufruf, welcher den Fehler produziert hat. Du hast versucht, nicht kompatible Typen zu casten (also z.B. TListColumn auf TListView oder umgekehrt).

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Waaaghboss
Waaaghboss

Registriert seit: 28. Okt 2003
Ort: Schwerin
15 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Listview sortieren über Button?

  Alt 12. Nov 2004, 14:30
Hi alcaeus,

Mit der möchte ich die Procedur aufrufen, da ich die ShowColumnHeaders später auf False setzen möchte, deswegen brauche ich ein Objekt z.B. Das Label "Anrede" um trotzdem sortieren zu können. Ich habe auf dem Gebiet wenig Ahnung, deswegen ist es möglich, das ich etwas vergessen habe oder so.

Delphi-Quellcode:
procedure TFMain.AnredeClick(Sender: TObject); <-- Anrede ist ein Label
begin
  ListColumnClick(Sender, List.Columns[0]);
end;
Wenn ich es so aufrufe kommt in der Zeile ein grüner Pfeil und der Text ist blau unterlegt.

Delphi-Quellcode:
procedure TFMain.ListColumnClick(Sender: TObject; Column: TListColumn);
begin
  ColumnToSort := Column.Index;
  if ColumnToSort = LastSorted then
    SortDir := 1 - SortDir
  else
    SortDir := 0;
  LastSorted := ColumnToSort;
  (Sender as TCustomListView).AlphaSort; <-- Hier kommt der Fehler
end;
MfG Waaaghboss
Zu denken, was wir hätten tun können, ist eine Tätigkeit, die uns zu denken geben sollte...
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: Listview sortieren über Button?

  Alt 12. Nov 2004, 14:40
Ist klar, ich hab dir einen falschen Aufruf gesagt

Probiers mal so: ListColumnClick(ListView1, ListView1.Columns[0]); Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Waaaghboss
Waaaghboss

Registriert seit: 28. Okt 2003
Ort: Schwerin
15 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Listview sortieren über Button?

  Alt 12. Nov 2004, 14:50


Es klappt, nice ...

Vielen, Vielen Dank!!!

Ich habe quasi nen Crashkurz in Delphi genommen und habe deshalb paar Lücken bei manchen Dingen.

MfG Waaaghboss & schönen Tag noch

Ps: cu cuz, i´ve probs very often
Zu denken, was wir hätten tun können, ist eine Tätigkeit, die uns zu denken geben sollte...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz