![]() |
Listview + SubItems
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,
ich habe mir einen Listview gebaut, der mir SystemInformationen anzeigen soll. Die 1. Spalte repräsentiert die Kategorie und die 2. Spalte soll nun die Werte bekommen. Das Ganze soll im Ereignis FormCreate passieren. Siehe Bild. Irgendwie kann ich die SubItems nicht ansprechen bzw. hineinschreiben. Bekomme immer einen Zugriffsfehler. Kann mir bitte einer sagen wie man die SubItems anspricht und wie man ihnen Werte zuweist? Danke. Sven |
Re: Listview + SubItems
***** Update *****
Und wie kann ich die KategorieÜberschrift (w.z.B. Computer) weiter nach links an Icon schieben? |
Re: Listview + SubItems
Hi,
SubItems sind von vom Typ TStrings. Also kannst Du damit arbeiten, wie mit einer String-Liste. Also mit Add() einträge hinzufügen, mit Delete() löschen und mit Items[] darauf zugreifen :) mfG mirage228 |
Re: Listview + SubItems
Das ist ja das Problem, dass funktioniert nicht wirklich, da bekomme ich immer eine Zugriffsverletzung.
Delphi-Quellcode:
Irgendwie komisch. Das kann doch nicht so schwer sein.
with lv_systeminfo do
begin ReadOnly := false; Items[1].SubItems.Add('Test'); ReadOnly := true; end; |
Re: Listview + SubItems
Hallo, wo steht dieser code? hier kann man nur orakelen:
1. das erste items ist items[0] und nicht 1 2. auch das item muß existieren (erzeugt wurden sein), wie das geht: das ist ein Beispiel in der Hilfe. 3. das readonly setzten kannst du dir sparen. Mf Frank |
Re: Listview + SubItems
Liste der Anhänge anzeigen (Anzahl: 1)
@Keldorn:
Schau das dir mal das Bild an. Dort siehst du das die Items schon erstellt sind. Jeetzt fehlen nur noch die SubItems, die auch schon angelegt habe (Titeltext ist bloß leer).
Delphi-Quellcode:
Er soll in die 2. Zeile(Betriebssystem) gehen und in die dazugehörige Spalte (Wertspalte) den Text 'BLA' schreiben.
procedure Tfrm_main.FormCreate(Sender: TObject);
begin PageControl1.ActivePage.PageIndex := 0; StatusBar1.Panels[1].Text := datetostr(now); StatusBar1.Panels[2].Text := timetostr(now); lv_systeminfo.Items[1].SubItems[1] := 'BLA'; FormResize(self); end; Hier erscheint dann immer die Zugriffsverletzung. Kann es eventuell sein, dass man das Listview zur Laufzeit erstellen und jedes Item und Subitem generieren muss? Dies wäre nicht so gut, da ich mir das manuelle Vorerstellen sparen kann. |
Re: Listview + SubItems
ich seh da keinen Fehler. wenn die items schon existieren, gehts mit ListView1.Items[1].SubItems.add('test');
Wenn du die Möglichkeit hast, dann lad mal bitte das Projekt hoch. Mfg Frank |
Re: Listview + SubItems
Danke für die Hilfe, ich mache es jetzt mit Hilfe des Quellcodes. Ist zwar etwas aufwendig aber es geht.
Delphi-Quellcode:
Letzte Frage, wie bekomme ich es aber hin, dass die Kategorienamen (z.B. Computer) gleich neben dem Symbol stehen? Und nicht in der gleichen Höhe, wie die Unterpunkte.
function listview_erstellen: boolean;
var ListItem : TListItem; begin with frm_main.lv_systeminfo do begin ListItem := Items.Add; ListItem.Caption := 'Computer'; ListItem.StateIndex := 0; ListItem.ImageIndex := -1; ListItem := Items.Add; ListItem.Caption := 'Betriebssystem'; ListItem.SubItems.Add(GetOperatingSystem); ListItem.ImageIndex := 1; ListItem := Items.Add; ListItem.Caption := 'Version'; ListItem.SubItems.Add(GetVersion); ListItem.ImageIndex := 2; ListItem := Items.Add; ListItem.ImageIndex := -1; ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 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