Autor Beitrag
CrazyLuke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 247

Windows XP Pro
Turbo Delphi Explorer, D2005 PE
BeitragVerfasst: So 01.08.04 13:55 
Ist es möglich, in einer TListView alle Untereinträge zu löschen (die normalen Einträge sollen bestehen bleiben)?
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: So 01.08.04 16:32 
was verstehst du unter normalen Einträgen, die Caption und als untereintraäge die Subitems?

dann nimm subitems.clear und veranlasse ein neuzeichnen der Listview.

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
CrazyLuke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 247

Windows XP Pro
Turbo Delphi Explorer, D2005 PE
BeitragVerfasst: Sa 28.08.04 14:30 
Hallo.

Ich hab einiges probiert, aber er kennt den Befehl nicht. Wie kann ich nun die zweite Spalte der ListView vor einer erneuten Suche löschen?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TForm1.Button11Click(Sender: TObject);
begin
Label33.Caption:='Status:  Suche gestartet - bitte warten!';
ListView1.Repaint;
application.processmessages;

if FileExists(ComboBox1.Items[ComboBox1.ItemIndex] + 'alphaaudio\alphaplayer.exe'then
  ListView1.Items.Item[0].SubItems.Add('VORHANDEN!')
  else
  ListView1.Items.Item[0].SubItems.Add('nicht gefunden');

if FileExists(ComboBox1.Items[ComboBox1.ItemIndex] + 'cactuspj.exe'then
  ListView1.Items.Item[1].SubItems.Add('VORHANDEN!')
  else
  ListView1.Items.Item[1].SubItems.Add('nicht gefunden');

if FileExists(ComboBox1.Items[ComboBox1.ItemIndex] + 'player\yucca.cds'then
  ListView1.Items.Item[2].SubItems.Add('VORHANDEN!')
  else
  ListView1.Items.Item[2].SubItems.Add('nicht gefunden');

  Label33.Caption:='Status:  Suche beendet.';
end;

Hab auch schonmal Refresh probiert, aber wenn ich auf einer CD suche und er ne Datei findet, bleibt das Ergebnis immer bei einer Suche im anderen CD-Laufwerk da stehen...
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Sa 28.08.04 15:16 
du mußt dich natürlich schon ein wenig mit deinem code auseinandersetzen.
wenn du schreibst
Zitat:

ListView1.Items.Item[0].SubItems.Add('VORHANDEN!')

und ich
Zitat:

subitems.clear

kann man da nicht auf die Idee kommen ?
ausblenden Delphi-Quelltext
1:
2:
ListView1.Items.Item[0].SubItems.clear;
listview1.repaint;


Obwohl in deinem Fall würde ich das nicht so machen. Ich würde beim Erstellen der Listview dafür sorgen, das zu jedem Eintrag die entprechenden Subitems da sind (subitems.add('') als leeres Subitem) und dann beim Ändern (Löschen wieder '' zuweisen):
ausblenden Delphi-Quelltext
1:
ListView1.Items.Item[0].SubItems[0]:='Vorhanden';					

das subitem muß dann aber existieren, sonst siehst du eine Exception, wie bei deine anderen thread. Würd ich aber besser finden, als das ständige löschen und neu hinzufügen

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
CrazyLuke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 247

Windows XP Pro
Turbo Delphi Explorer, D2005 PE
BeitragVerfasst: Sa 28.08.04 15:53 
Danke, es funzt jetzt.

Hab gedacht, mit dem "SubItems.Clear" wärs möglich, sämtliche SubItems zu löschen (und nicht nur die von einem Item).

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TForm1.Button11Click(Sender: TObject);
begin
Label33.Caption:='Status:  Suche gestartet - bitte warten!';
ListView1.Refresh;
application.processmessages;

if FileExists(ComboBox1.Items[ComboBox1.ItemIndex] + 'alphaaudio\alphaplayer.exe'then
  ListView1.Items.Item[0].SubItems[0]:='VORHANDEN!'
  else
  ListView1.Items.Item[0].SubItems[0]:='nicht gefunden';

if FileExists(ComboBox1.Items[ComboBox1.ItemIndex] + 'cactuspj.exe'then
  ListView1.Items.Item[1].SubItems[0]:='VORHANDEN!'
  else
  ListView1.Items.Item[1].SubItems[0]:='nicht gefunden';

if FileExists(ComboBox1.Items[ComboBox1.ItemIndex] + 'player\yucca.cds'then
  ListView1.Items.Item[2].SubItems[0]:='VORHANDEN!'
  else
  ListView1.Items.Item[2].SubItems[0]:='nicht gefunden';

  Label33.Caption:='Status:  Suche beendet.';
end;
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Sa 28.08.04 18:23 
CrazyLuke hat folgendes geschrieben:

Hab gedacht, mit dem "SubItems.Clear" wärs möglich, sämtliche SubItems zu löschen (und nicht nur die von einem Item).

wenn du
ausblenden Delphi-Quelltext
1:
ListView1.Items.Item[0].SubItems.Add('VORHANDEN!')					

schreibst, fügst du dann den eintrag zu sämtlichen subitems hinzu, oder nur für das eine subitem ;) ? gleiches gilt fürs subitems.clear.

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
CrazyLuke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 247

Windows XP Pro
Turbo Delphi Explorer, D2005 PE
BeitragVerfasst: Sa 28.08.04 19:38 
Naja, hab gedacht es gäb nen Befehl zum Löschen aller SubItems. Aber so funktioniert es ja auch sehr gut - und ich kann direkt die zukünftigen zu scannenden Kopierschutzmethoden eintragen und als SubItem steht dann da generell " - in Vorbereitung - " 8)

Danke :!: