AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Listview nach erfolgreichem Multiselect neu sorteiren
Thema durchsuchen
Ansicht
Themen-Optionen

Listview nach erfolgreichem Multiselect neu sorteiren

Ein Thema von joredue · begonnen am 24. Aug 2004 · letzter Beitrag vom 24. Aug 2004
Antwort Antwort
joredue

Registriert seit: 10. Jul 2004
10 Beiträge
 
#1

Listview nach erfolgreichem Multiselect neu sorteiren

  Alt 24. Aug 2004, 09:46
Hallo alle zusammen.

In suche in einem Listview alle Einträge, die mit dem in TEdit enthaltenen Text übereinstimmen. Das funktioniert alles einwandfrei. Die Einträge sind an verschiedenen Stellen in der Listview. z.B. stehen die gefundenen Einträge an Zeile 1, 33, 459, 1299 usw.

Meine Frage ist die, wie kann ich jetzt die gefundenen und mit Multiselect markierten Zeilen untereinander darstellen, so daß die Reihenfolge nicht mehr an Zeile 1, 33, 459, 1299 sondern an Zeile 1, 2, 3, 4, usw. ist ?

Danke schon mal jetzt.

Cu
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Listview nach erfolgreichem Multiselect neu sorteiren

  Alt 24. Aug 2004, 09:56
Hallo

das listview mit alphasort sortieren. Bei dem oncompare-ereignis vergleichst du dann statt der caption/subitems die Selected eigenschaft.

Wenn es auch wieder rücksortiert werden muß: entweder du hast eine durchgehende Nummerierung oder du mußt dir dises schaffen, z.B. in dem du die data-eigenschaft des listitems nutzt.

Mfg Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
joredue

Registriert seit: 10. Jul 2004
10 Beiträge
 
#3

Re: Listview nach erfolgreichem Multiselect neu sorteiren

  Alt 24. Aug 2004, 12:39
Hallo Frank.

Danke für den Hinweis, aber ich stehe voll auf dem Schlauch.

Das habe ich dazu in der OH gefunden

Delphi-Quellcode:
procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer);
var
  ix: Integer;
begin
  if ColumnToSort = 0 then
    Compare := CompareText(Item1.Caption,Item2.Caption)
  else begin
   ix := ColumnToSort - 1;
   Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
  end;

end;
Meine Meinung nach müsste ich irgendwie hier landen

compare := Compare(ListView2.Selected.Index[ix], Item2.ListView.Selected.Index[ix]); Kriegs einfach nicht hin.

CU Achim
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: Listview nach erfolgreichem Multiselect neu sorteiren

  Alt 24. Aug 2004, 13:31
probiers mal so
Delphi-Quellcode:
procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
  Data: Integer; var Compare: Integer);
begin
  compare := 0;
  if (item1.Selected) and not(item2.Selected) then compare := -1;
  if not(item1.Selected) and (item2.Selected) then compare := 1;
end;
ix ist die Spalte, nach der sortiert weden soll, das brauchst du nicht. du mußt die item1 und item2 vergleichen, nicht die listview.selected eigenschaft.

Mfg Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
joredue

Registriert seit: 10. Jul 2004
10 Beiträge
 
#5

Re: Listview nach erfolgreichem Multiselect neu sorteiren

  Alt 24. Aug 2004, 14:35
Hallo Frank.

Fluppt einwandfrei.


Danke schön.

Cu
  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 11:16 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