AGB  ·  Datenschutz  ·  Impressum  







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

TListView Spalten vertauschen

Ein Thema von martin_ · begonnen am 5. Nov 2009 · letzter Beitrag vom 5. Nov 2009
Antwort Antwort
Seite 1 von 2  1 2      
martin_

Registriert seit: 19. Mai 2008
Ort: Österreich
89 Beiträge
 
#1

TListView Spalten vertauschen

  Alt 5. Nov 2009, 13:25
Hallo,
wie ist es bei einer TListView(vsReport), bestehend aus 2 Spalten mit mehreren Einträgen möglich die Reihenfolge der Spalten zu verändern (vertauschen)?
danke.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

Re: TListView Spalten vertauschen

  Alt 5. Nov 2009, 13:42
Ich kenne da jetzt kein vordefinierte Routine dafür, aber mit etwas Handarbeit sollte das zu machen sein. Enthalten die Items/SubItems denn auch Objekte oder handelt es sich um eine reine Anzeige?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
martin_

Registriert seit: 19. Mai 2008
Ort: Österreich
89 Beiträge
 
#3

Re: TListView Spalten vertauschen

  Alt 5. Nov 2009, 13:50
Sind keine Objekte enthalten, nur Strings. Ich habe daher nur die Beschriftung geändert.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

Re: TListView Spalten vertauschen

  Alt 5. Nov 2009, 14:13
Auch wenn es nicht sonderlich elegant ist: Du könntest in einer Schleife durch die Items iterieren, Dir die Caption merken und mit SubItems[0] einen Dreieckstausch durchführen. BeginUpdate und EndUpdate dabei genauso wenig vergessen wie die Columns, die müssten ja auch getauscht werden. Andererseits gibt es da bestimmt eine Methode, die mir nur gerade nicht einfällt
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#5

Re: TListView Spalten vertauschen

  Alt 5. Nov 2009, 14:27
Du könntest auch den Style LVS_EX_HEADERDRAGDROP setzen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#6

Re: TListView Spalten vertauschen

  Alt 5. Nov 2009, 14:38
Columns.Items[x].Index den entsprechenden Index zuordnen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#7

Re: TListView Spalten vertauschen

  Alt 5. Nov 2009, 14:43
Hallo,

es gibt eine Methode
Delphi-Quellcode:
for z := a to b do
  ListView.Items[z].SubItems.Exchange(Spalte1,Spalte2);
//eventuell noch
ListView.UpdateItems(a,b);
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#8

Re: TListView Spalten vertauschen

  Alt 5. Nov 2009, 15:09
Aber tauscht das nicht nur die SubItems aus? Bei 2 Spalten müsste man doch aber Item und 1. SubItem austauschen, oder spinne ich gerade?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#9

Re: TListView Spalten vertauschen

  Alt 5. Nov 2009, 15:26
Hallo,

nee, Du spinnst nicht
Zitat von martin_:
...bestehend aus 2 Spalten
... wer lesen kann, ist klar im Vorteil
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

Re: TListView Spalten vertauschen

  Alt 5. Nov 2009, 16:20
Meine Gedanken von oben einmal in Code gefasst:
Delphi-Quellcode:
procedure TFormWuppdi.ButtonTauschClick(Sender: TObject);
var i: integer;
    tmp: string;
begin
  ListView1.Items.BeginUpdate;
  try
    tmp := ListView1.Columns[0].Caption;
    ListView1.Columns[0].Caption := ListView1.Columns[1].Caption;
    ListView1.Columns[1].Caption := tmp;
    for i := 0 to ListView1.Items.Count - 1 do
      begin
        tmp := ListView1.Items[i].Caption;
        ListView1.Items[i].Caption := ListView1.Items[i].SubItems[0];
        ListView1.Items[i].SubItems[0] := tmp;
      end;
  finally
    ListView1.Items.EndUpdate;
  end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:59 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