Einzelnen Beitrag anzeigen

in_da_hood

Registriert seit: 13. Okt 2008
Ort: Berlin
16 Beiträge
 
Delphi 6 Enterprise
 
#1

Wie benutze ich ein Listview?

  Alt 17. Okt 2008, 11:18
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.
  Mit Zitat antworten Zitat