Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ListView, ich verstehe sie einfach nicht, suche Hilfe (https://www.delphipraxis.net/210268-listview-ich-verstehe-sie-einfach-nicht-suche-hilfe.html)

jumper63 27. Mär 2022 15:23

ListView, ich verstehe sie einfach nicht, suche Hilfe
 
Liste der Anhänge anzeigen (Anzahl: 2)
Guten Tag Forum,
ich(30 Jahre, John=) habe mich hier angemeldet weil ich nicht mehr weiter weiß.
Bisher konnte mir mein Papa immer gut helfen, allerdings hat er bei der ListView recht schnell aufgegeben und ich genauso.
Die ListView scheint mir entweder sehr kompliziert, oder es ist für meine Wünsche nicht nutzbar.

Ich programmiere jetzt schon eine Weile und bin durch probieren und googlen meistens zum Ziel gekommen,
mein Papa stet mir für Fragen auch immer zur Verfügung. Hier im Forum habe ich auch schon gesucht, allerdings komme ich kein Stück mehr weiter.

Ich habe bisher mit einer StringGrid gearbeitet, dort kann ich wunderbar Zeilen hinzufügen und auslesen, z.b. mit:
Hinzufügen:
StringGrid1.cells[1,3]:= 'Spalte 2 Zeile 3';
Auslesen:
ListBox1.Items.add(StringGrid1.Cells[1,3]);

Ich bekomme das jedoch nicht annähernd bei der ListView hin.
Hier wird nicht mit [Spalte,Zeile] gearbeitet.

Mit: ListView1.Columns[2].Caption:='Geändert';
ändere ich Überschrift der Spalte 3.

Mit: ListView1.Items.Add.Caption:= 'Hallo Spalte1';
füge ich in Spalte 1 eine Zeile hinzu.

Ich raff einfach nicht wie ich etwas z.b. in Spalte 2 hinzufügen kann. Am besten noch geziehlt in Zeile 3 z.b.
Und wie kann ich es auslesen, wie bei der StringGrid? :gruebel:

Ich finde kein Tutorial oder sonst irgendwelche Beispiele.
Eventuell brauch ich nur einen Denkanstoss, finde die ListView sehr schick, es wurmt mich wenn ich nicht weiter komme
und zwanghaft die StringGrid nehmen muss.(StringGrid ist auch was feines, versteht mich nicht falsch).


Ich hoffe das mir hier irgendjemand helfen kann. Wäre unendlich dankbar! :nerd:
(Mein Testprogramm zum üben habe ich angehängt!)

Vielen Dank für Eure Mühe. :cheers:

dummzeuch 27. Mär 2022 16:14

AW: ListView, ich verstehe sie einfach nicht, suche Hilfe
 
Zunächst muss man mittels der ViewStyle-Property die Ansicht umstellen auf vsRecord.

Spalten fügt man mittels der Columns-Property hinzu.

Dann kann man Zeilen mit der Items-Property hinzufügen. Der Text für die erste Spalte steht in deren Captions-Property und der Text für die weiteren Spalten in deren SubItems-Property:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  lc: TListColumn;
  li: TListItem;
begin
  lc := ListView1.Columns.Add;
  lc.Caption := 'Caption1';
  lc := ListView1.Columns.Add;
  lc.Caption := 'Caption2';
  lc := ListView1.Columns.Add;
  lc.Caption := 'Caption3';
  lc := ListView1.Columns.Add;
  lc.Caption := 'Caption4';

  li := ListView1.Items.Add;
  li.Caption := 'Item1';
  li.SubItems.Add('SubItem1.1');
  li.SubItems.Add('SubItem1.2');
  li.SubItems.Add('SubItem1.3');

  li := ListView1.Items.Add;
  li.Caption := 'Item2';
  li.SubItems.Add('SubItem2.1');
  li.SubItems.Add('SubItem2.2');
  li.SubItems.Add('SubItem2.3');
end;
Zugriff geht analog:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  li: TListItem;
  ErsteSpalte: string;
  ZweiteSpalte: string;
  DritteSpalte: string;
  VierteSpalte: string;
begin
  li := ListView1.Items[0];
  ErsteSpalte := li.Caption;
  ZweiteSpalte := li.SubItems[0];
  DritteSpalte := li.SubItems[0];
  VierteSpalte := li.SubItems[0];
end;
Es gibt leider keinen einfachen Zugriff wie beim StringGrid, deshalb bevorzuge ich in der Regel ein StringGrid oder ein DrawGrid (letzteres ist aber wieder komplexer), allerdings gibt es Leute, die finden, das sieht "veraltet" aus.

Man kann sich natürlich den Zugriff analog zum StringGrid selbst programmieren:

Delphi-Quellcode:
function TListView_GetCell(_lv: TListView; _Row, _Col: integer): string;
begin
  li := _lv.Items[_Row];
  if _Col = 0 then
    Result := li.Caption
  else
    Result := li.SubItems[_Col-1];
end;
Schreibzugriff dann analog dazu.

Redeemer 27. Mär 2022 17:30

AW: ListView, ich verstehe sie einfach nicht, suche Hilfe
 
Zitat:

Zitat von dummzeuch (Beitrag 1503980)
Zunächst muss man mittels der ViewStyle-Property die Ansicht umstellen auf vsRecord.

Du meinst wohl vsReport.

jumper63 30. Mär 2022 15:17

AW: ListView, ich verstehe sie einfach nicht, suche Hilfe
 
Hallo dummzeuch,
ich wollte mich kurz bedanken, Dein Beitrag hat mir zwar sehr geholfen die ListView zu verstehen,
allerdings bin ich recht schnell wieder zurück zur StringGrid. Du hast schon recht, der Zugriff ist hier viel einfacher.


Vielen Dank!:thumb:

dummzeuch 30. Mär 2022 15:42

AW: ListView, ich verstehe sie einfach nicht, suche Hilfe
 
Zitat:

Zitat von Redeemer (Beitrag 1503983)
Zitat:

Zitat von dummzeuch (Beitrag 1503980)
Zunächst muss man mittels der ViewStyle-Property die Ansicht umstellen auf vsRecord.

Du meinst wohl vsReport.

Argl! Ja, natürlich.

Medium 30. Mär 2022 21:32

AW: ListView, ich verstehe sie einfach nicht, suche Hilfe
 
Zitat:

Zitat von jumper63 (Beitrag 1503978)
ich(30 Jahre, John=)

Entschuldigung, kurzes OT: Dein Profil sagt "1982 erstes programmieren in Basic auf 8-Bit Computer, 1990 Turbo Pascal, später Delphi 1.."

1982 ist 40 Jahre her, was ich genau weiß, weil ich in diesem Jahr geboren wurde. Du hast also 10 Jahre vor deiner Geburt mal direkt ein paar BASIC Programme geschrieben? Alle Achtung!

Gausi 31. Mär 2022 09:10

AW: ListView, ich verstehe sie einfach nicht, suche Hilfe
 
Ich tippe da mal auf familien-internes Account-Sharing. Der "echte Name" im Profil ist ja auch anders als in der Vorstellung im ersten Posting. Gibt es dazu eigentlich was in den Foren-Richtlinien? :lol:
:duck:

Ansonsten: Ist hier vielleicht mit Kanonen auf Fliegen geschossen, aber sobald ich mehr als nur einen kurzen String pro Item in einer Liste anzeigen möchte, nutze ich fast immer den VirtualStringTree. Das ist eine OpenSource-Zusatzkomponente, also nicht direkt bei Delphi dabei. Die erfordert einiges an Einarbeitung, aber wenn man diese Hürde überwunden hat, fluppt es damit. Vielleicht ist das einen Blick wert.

jodaka 1. Apr 2022 13:38

AW: ListView, ich verstehe sie einfach nicht, suche Hilfe
 
Hallo,
ich bin der Sohn vom Jumper 63. :D
Es tut mir leid das dieses "familien-internes Account-Sharing" stattgefunden hat, geht auf meine Kappe uund kommt nicht mehr vor.
Mein erster Beitrag musste freigeschaltet werden und ich habe diesen Hinweiis ungelesen weg geklickt und mich dann gewundern wo mein Thread ist.
Habe dann erst von meinen Papa erfahren das er auch hier angemeldet ist und ich habe über seinen Namen geschrieben. Kurze Zeit später waren aufeinmal
doppelt Threads da, von mir(jodaka) und Jumper63.

Tut mir leid. Hoffe jetzt ist es geklärt.

LG


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