Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie benutze ich ein Listview? (https://www.delphipraxis.net/122518-wie-benutze-ich-ein-listview.html)

in_da_hood 17. Okt 2008 11:18


Wie benutze ich ein Listview?
 
Hallo,

ich möchte eine Prozessliste ausgeben lassen von Delphi.
Hierzu wurde mir geraten ein ListView zu verwenden, da ich dort mehrere Spalten einstellen kann(aber nicht weiß wie).
Derzeit verwende ich einfach mehrere Listboxen.
Bisher habe ich noch nicht mit einem ListView gearbeitet und weiß nicht, wie ich dieses "ansprechen" kann.
Wie kann ich Einträge bzw. meine Prozessliste in die Spalten meiner ListView eintragen lassen?
Und wie kann ich Spalten einstellen und gesondert "ansprechen"?

Danke im Voraus.
Hier noch der Quellcode:

Delphi-Quellcode:
procedure GetProcessList(const aProcessList: TStrings);     //erstellt Snapshot der Processliste
var
 Snap: THandle;
 ProcessE: TProcessEntry32;
begin
 aProcessList.Clear;
 Snap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 try
  ProcessE.dwSize := SizeOf(ProcessE);
  if Process32First(Snap, ProcessE)then
   Repeat
   aProcessList.Add(ProcessE.szExeFile);
   Until not Process32Next(Snap, ProcessE)
  else
   RaiseLastOSError;
 finally   CloseHandle(Snap);
 end;
end;


procedure GetProcessIDList(const aProcessList: TStrings);          //erstellt Snapshot der ProcessIDliste
var
 Snap: THandle;
 ProcessE: TProcessEntry32;
begin
 aProcessList.Clear;
 Snap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 try
  ProcessE.dwSize := SizeOf(ProcessE);
  if Process32First(Snap, ProcessE)then
   Repeat
   aProcessList.Add(inttostr(ProcessE.th32ProcessID));
   Until not Process32Next(Snap, ProcessE)
  else
   RaiseLastOSError;
 finally   CloseHandle(Snap);
 end;
end;


procedure GetProcessThreadList(const aProcessList: TStrings);              
var
 Snap: THandle;
 ProcessE: TProcessEntry32;
begin
 aProcessList.Clear;
 Snap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 try
  ProcessE.dwSize := SizeOf(ProcessE);
  if Process32First(Snap, ProcessE)then
   Repeat
   aProcessList.Add(inttostr(ProcessE.cntThreads));
   Until not Process32Next(Snap, ProcessE)
  else
   RaiseLastOSError;
 finally   CloseHandle(Snap);
 end;
end;


procedure GetProcessPriClassList(const aProcessList: TStrings);
var
 Snap: THandle;
 ProcessE: TProcessEntry32;
begin
 aProcessList.Clear;
 Snap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 try
  ProcessE.dwSize := SizeOf(ProcessE);
  if Process32First(Snap, ProcessE)then
   Repeat
   aProcessList.Add(inttostr(ProcessE.pcPriClassBase));
   Until not Process32Next(Snap, ProcessE)
  else
   RaiseLastOSError;
 finally   CloseHandle(Snap);
 end;
end;




procedure TForm1.Button1Click(Sender: TObject);
begin
 GetProcessList(listbox1.items);
 GetProcessIDList(listbox2.Items);
 GetProcessThreadList(listbox3.items);
 GetProcessPriClassList(listbox4.Items);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 close;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
 listBox1.Items.Clear();
 listBox2.Items.Clear();
 listBox3.Items.Clear();
 listBox4.Items.Clear()
end;


end.

Frankfurtoder 17. Okt 2008 11:22

Re: Wie benutze ich ein Listview?
 
Im Objektinspektor der ListView gibts den Eintrag Colums. Wenn du das aufrufst dann bekommst ein kleineres Fenster in der du Spalten hinzufügen kannst.

in_da_hood 17. Okt 2008 11:24

Re: Wie benutze ich ein Listview?
 
Danke

und wie kann ich diese gesondert benutzen?

Apollonius 17. Okt 2008 11:34

Re: Wie benutze ich ein Listview?
 
TListItem.Caption enthält den Text der ersten Spalte, die weiteren sind in TListItem.SubItems.

in_da_hood 17. Okt 2008 11:44

Re: Wie benutze ich ein Listview?
 
Zitat:

TListItem.Caption enthält den Text der ersten Spalte, die weiteren sind in TListItem.SubItems.

So weit so gut.
Und wie wendet man das im Quellcode an?
Wie unterscheidet man zwischen den SubItems, ob nun Spalte 3 oder 4 beispielsweise beschrieben wird?


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