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 Listview + SubItems (https://www.delphipraxis.net/34618-listview-subitems.html)

Piro 25. Nov 2004 15:34


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

Piro 25. Nov 2004 15:37

Re: Listview + SubItems
 
***** Update *****

Und wie kann ich die KategorieÜberschrift (w.z.B. Computer) weiter nach links an Icon schieben?

mirage228 25. Nov 2004 16:52

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

Piro 25. Nov 2004 17:07

Re: Listview + SubItems
 
Das ist ja das Problem, dass funktioniert nicht wirklich, da bekomme ich immer eine Zugriffsverletzung.

Delphi-Quellcode:
with lv_systeminfo do
 begin
   ReadOnly := false;
   Items[1].SubItems.Add('Test');
   ReadOnly := true;
 end;
Irgendwie komisch. Das kann doch nicht so schwer sein.

Keldorn 25. Nov 2004 17:10

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

Piro 25. Nov 2004 17:36

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:
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;
Er soll in die 2. Zeile(Betriebssystem) gehen und in die dazugehörige Spalte (Wertspalte) den Text 'BLA' schreiben.

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.

Keldorn 25. Nov 2004 18:05

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

Piro 25. Nov 2004 18:17

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:
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;

...
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.


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