Autor Beitrag
DELPHIn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98

Windows Vista
Delphi 2007 für Win 32 Prof.
BeitragVerfasst: Mo 03.03.03 12:25 
Hallo,

hat schonmal jemand eine ListView gecodet, bei der man die Columns verschieben kann?
Ich wollte, dass der Anwender die Spalten nach eigenem Wunsch anordnen kann.
Benötigen tue ich dafür das Event, das mir sagt, dass gerade ein Drop stattfindet und wohin welche Spalte verschoben wurde.

Danke

_________________
DELPHIn
=> Errare humanum est
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 03.03.03 12:32 
DELPHIn hat folgendes geschrieben:
Hallo,

hat schonmal jemand eine ListView gecodet, bei der man die Columns verschieben kann?

Nein.
Zitat:

Ich wollte, dass der Anwender die Spalten nach eigenem Wunsch anordnen kann.

Was für ein Luxus. :wink:
Zitat:

Benötigen tue ich dafür das Event, das mir sagt, dass gerade ein Drop stattfindet

Warum? Dich interessiert doch nur das Ergebnis oder?
Zitat:

und wohin welche Spalte verschoben wurde.

Geh doch beim Beenden des Programms nach ein ander die Spalten durch und merk dir die Captions. Und beim Start kannst du an Hand der Caption die Reihenfolge wieder rekonstruieren.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 03.03.03 12:39 
Luckie hat folgendes geschrieben:
DELPHIn hat folgendes geschrieben:
Hallo,

hat schonmal jemand eine ListView gecodet, bei der man die Columns verschieben kann?

Nein.

U big fat liar! Hier mal ein Auszug aus Luckies "Listview.dpr":
ausblenden Quelltext
1:
2:
3:
SendMessage(hLV,LVM_SETEXTENDEDLISTVIEWSTYLE,0,
  LVS_EX_HEADERDRAGDROP  // <-- !
  or LVS_EX_FULLROWSELECT);

:mrgreen:
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Mo 03.03.03 12:45 
DELPHIn hat folgendes geschrieben:
Hallo,

hat schonmal jemand eine ListView gecodet, bei der man die Columns verschieben kann?


Hallo, die Listview kann das doch schon, schau dir mal Fulldrag an und onColumndrag, insbesondere den Tip, an

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 03.03.03 12:47 
Jugendsünden zählen nicht. Aber hier ging es wohl er um das Speichern und Laden der Spaltenreihenfolge. Der Stil ist wohl nur ein Klick im OI bei der VCL.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 03.03.03 15:52 
@Keldorn: Ich hätte die Eigenschaft ID genommen, denn
Delphi-Hilfe hat folgendes geschrieben:
Tag besitzt keine vordefinierte Bedeutung. Die Eigenschaft Tag kann von Entwicklern beliebig eingesetzt werden, z.B. um zusätzliche Integer-Werte zu speichern. Der Typ von Tag kann aber auch in einen 32-Bit-Typ, z.B. für Komponentenreferenzen oder Zeiger, umgewandelt werden.

aber
Zitat:
In den meisten Fällen hat ID denselben Wert wie die Eigenschaft Index des Elements beim Hinzufügen zur Kollektion. Im Gegensatz zu Index wird ID aber niemals geändert oder neu zugewiesen. Wenn ein Element aus einer Kollektion entfernt wird, wird dessen ID nicht noch einmal verwendet.

Außerdem ist "ID" eine Nur-Lesen-Eigenschaft.


@DELPHIn: Hier die Theorie für den Fall, dass die Spaltenanordnung auch nach einem Neustart des Programms noch so sein soll, wie der User dies wünscht -

Man nehme ein Array (dynamisch oder statisch), lese nacheinander die Spalten ein und speichere jeweils die eindeutige ID im Array. Das kann dann z.B. in der Registry im Binärformat hinterlegt werden.
Beim Laden werden die Daten dann aus der Registry geholt. Mit Hilfe von "FindItemID" (Member von Columns) suchst du das Item mit der im Array gespeicherten ID und gibst ihm als neuen Index den Wert der Zählervariablen - wenn du das Array z.B. in einer for-Schleife abarbeitest.

Ich denke, dieses Gerede lässt sich problemlos in Delphi-Code umsetzen. :)
DELPHIn Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98

Windows Vista
Delphi 2007 für Win 32 Prof.
BeitragVerfasst: Mo 10.03.03 12:42 
An Alle:
Vielen Dank für die Hilfe.
Jetzt läufts :) .

_________________
DELPHIn
=> Errare humanum est