![]() |
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: |
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:
Zugriff geht analog:
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;
Delphi-Quellcode:
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.
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; Man kann sich natürlich den Zugriff analog zum StringGrid selbst programmieren:
Delphi-Quellcode:
Schreibzugriff dann analog dazu.
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; |
AW: ListView, ich verstehe sie einfach nicht, suche Hilfe
Zitat:
|
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: |
AW: ListView, ich verstehe sie einfach nicht, suche Hilfe
Zitat:
|
AW: ListView, ich verstehe sie einfach nicht, suche Hilfe
Zitat:
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! |
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. |
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 19:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz