Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Arbeiten mit listview (https://www.delphipraxis.net/5370-arbeiten-mit-listview.html)

lordcroc 3. Jun 2003 23:32


Arbeiten mit listview
 
hi,
ich habe versucht in den letzten ein TListView zu verwenden, leider bin ich schon beim fülen gescheitert. ich bekomme es einfach nich hin ein Listview im vsReport style mit mehreren Spalten zu füllen. :twisted: Könnte mir da jemand vielleicht weiter helfen? habe hier schon gesucht aber nix gefunden was mir weiterhilft.

Danke im vorraus

[edit=Daniel B]Doppelpost gelöscht. MfG Daniel B.[/edit]

Christian Seehase 4. Jun 2003 00:16

Moin Lordroc,

kleiner Tip:
Das eigentliche Item entspricht der ersten Spalte, die weiteren werden dann durch die SubItems dieses Items gebildet.

Captnemo 4. Jun 2003 06:37

Kleine Ergänzung:

Diese Spalten werden jedoch nur angezeigt, wenn du die Columns entsprechend setzt.

Beispiel:

Columns (TString):
- Dateiname
- Dateigröße
- Dateidatum

Im Code dann:

var
LI: TListItem;
begin
LI:=ListView1.Items.Add;
LI.Caption:='Test.txt';
LI.SubItem.Add:='100 Kbyte';
LI.SubItem.Add:='01.01.2001';


Du kannst natürlich auch noch weitere SubItems adden, diese werden dann aber nicht angezeigt (sind aber da). Benutze ich manchmal um interne Informationen zu den Einträgen abzulegen.

Solltest du auf ein ListItem zugreifen wollen, dann:

LI:=ListView1.Items[2] oder LI:=ListView1.Selected

Dann kannst du auf die Informationen mit
LI.Caption oder LI.SubItem[0] zugreifen.

Wenn du aber nach dem Zugriff den Eintrag löschen willst, dann mußt du ihn mit LI:=nil vorher freigeben, sonst Exception :D

Alles klar?

mjenke 4. Jun 2003 08:49

@Captnemo

Hi! Fand die ganze Geschichte sehr interessant und habe Dein Codebeispiel direkt mal ausprobiert. Allerdings nicht mit dem gewünschten Erfolg :(

Musste den Code ein wenig verändern, damit er angenommen wurde:
Delphi-Quellcode:
var
LI: TListItem;
begin
LI:=ListView1.Items.Add;
LI.Caption:='Test.txt';
LI.SubItems.Add('100 Kbyte');
LI.SubItems.Add('01.01.2001');
Habe ich damit jetzt irgend etwas durcheinandergebracht (habe nur die SubItems.Add-Zeilen angepasst. Aber in der ListView erschien trotzdem nur die Caption...

:?:
Matthias

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]

Captnemo 4. Jun 2003 08:56

Hast du ein den Eigenschaften vom ListView das ViewStyle wirklich auf vsReport?
Hast du in den Eigenschaften auf Columns einen Doppelklick gemacht, und die Spalten erstellt ?

Dann müste es eigentlich richtig dargestellt werden.

Noch ein kleiner Tipp: Wenns funktioniert, dann setzt mal bei einer Spalte (Doppelklick auf Columns der Eigenschaften vom Listview) die Eigenschaft Autosize auf True. Dann wird diese Spalte immer so breit, wie nötig um das ListView horizontal auszufüllen.

Aber erst wenn deine Anzeige so ist, wie du es wolltest :D

X-Dragon 4. Jun 2003 11:05

So würde es zumindest bei mir aussehen:
Delphi-Quellcode:
  LV.Items.Add.Caption := 'test.txt;

  with LV.Items.Item[LV.Items.Count-1].SubItems do
  begin
    Add('100 kb');
    Add('01.01.2001');
  end;
So kann man relativ einfach die ListView-Tabelle Zeile für Zeile mit Daten füllen.

mjenke 4. Jun 2003 11:36

@Captnemo

Ich hatte NATÜRLICH vergessen, den ViewStyle auf vsReport zu stellen... :oops:
Jetzt funktioniert's!

:)
Matthias

Captnemo 4. Jun 2003 12:00

Aha, Augen auf beim Eierkauf :mrgreen:

Na klappt doch. Alles klar. :spin: :spin: :party:

lordcroc 4. Jun 2003 20:11

danke für die Hilfe werde es gleich mal ausprobieren! :D

und tut mir leid wegen dem doppelpost! :oops:

lordcroc 5. Jun 2003 23:33

so habe heute mal eure Tips zum Listview ausprobiert und es hat funktioniert. Nochmals danke!! :hello: :hello: :hello:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 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