AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Problem: Mittels ListBox Strings aus StringList löschen !?
Thema durchsuchen
Ansicht
Themen-Optionen

Problem: Mittels ListBox Strings aus StringList löschen !?

Ein Thema von daniel-volk · begonnen am 1. Aug 2003 · letzter Beitrag vom 10. Aug 2003
Thema geschlossen
Seite 1 von 2  1 2      
daniel-volk

Registriert seit: 16. Jul 2003
170 Beiträge
 
Delphi 6 Enterprise
 
#1

Problem: Mittels ListBox Strings aus StringList löschen !?

  Alt 1. Aug 2003, 12:56
Hi,

wer kann mir bei folgendem Problem helfen?

Ich habe in einer StringList untereinander eine Menge Dateipfade stehen. Die reinen Dateinamen werden dabei vom Programm für den Benutzer noch einmal in eine Listbox geschrieben.
Die Stringlist wird also programmintern verwendet, während die Listbox als Userinterface dient.

Der User soll jetzt in der ListBox (Multiselect = true) verschiedene Items auswählen und auf "löschen" klicken können. Dabei sollen in der Stringlist die entsprechenden Strings (Index von ListBox Item = Index von StringList String) gelöscht werden.
(Es sollen also die gewählten Dateinamen aus der StringList entfernt werden).

Wie mache ich das am besten? Ich hab schon mit ListBox1.SelCount und ListBox1.ItemIndex gearbeitet (mit for-Schleife), das führt aber oft zum Löschen falscher Strings.

Danke für eure Hilfe!
 
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem: Mittels ListBox Strings aus StringList löschen

  Alt 1. Aug 2003, 12:59
Moin Daniel,

Du müsstest die Daten von hinten nach vorne löschen, also vom höchsten Index zum niedrigsten, da sich nach jedem Löschen der Index der Nachfolgenden Einträge verschiebt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
 
daniel-volk

Registriert seit: 16. Jul 2003
170 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Problem: Mittels ListBox Strings aus StringList löschen

  Alt 1. Aug 2003, 13:01
Daran hab ich auch schon gedacht. Aber wie bekomme ich den Index des letzten markierten Items? Ich find einfach diese Funktion nicht.

Danke.
 
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Problem: Mittels ListBox Strings aus StringList löschen

  Alt 1. Aug 2003, 13:02
Moin Daniel,

aus dem Kopf weiss ich das leider auch nicht, und nachschauen kann ich im Moment nicht
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
 
daniel-volk

Registriert seit: 16. Jul 2003
170 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Problem: Mittels ListBox Strings aus StringList löschen

  Alt 1. Aug 2003, 13:11
Macht nichts.

Vielleicht weiß es ja zufällig jemand anders
 
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Problem: Mittels ListBox Strings aus StringList löschen

  Alt 1. Aug 2003, 13:16
Zitat von daniel-volk:
Aber wie bekomme ich den Index des letzten markierten Items? Ich find einfach diese Funktion nicht.
Das liegt wohl daran, dass es diese Funktiomn nicht gibt
Du musst da ein bisschen selbst Hand anlegen.
Mit ListBox.Selected[Index] bekommst du einen boolschen Wert, der angibt, ob entsprechendes Element markiert ist oder nicht.
Es sind genau ListBox.SelCount Elemente markiert.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
 
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#7

Re: Problem: Mittels ListBox Strings aus StringList löschen

  Alt 1. Aug 2003, 13:18
versuch mal so die Strings aus dem Array zu löschen (Array muss global sein):
Delphi-Quellcode:
procedure Tform1.delete_row(row: integer);
var i: integer;
begin
  for i := row to High(deinarray)-1 do
    deinarray[i] := deinarray[i+1];
  SetLength(deinarray, Length(deinarray) - 1);
end;
Das ganze musst du dann mit einer for-Schleife durchgehen, um die Strings aus Listbox und Array zu löschen..
Alexander
 
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#8

Re: Problem: Mittels ListBox Strings aus StringList löschen

  Alt 1. Aug 2003, 13:29
Delphi-Quellcode:
for i := ListBox1.Items.Count - 1 downto 0 do begin
  if ListBox1.Selected[i] then begin
    deineStringList.Delete(i);
    ListBox1.Items[i].Delete;
  end;
end;
Ungetestet sollte aber so funktionieren.

Gruß
 
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#9

Re: Problem: Mittels ListBox Strings aus StringList löschen

  Alt 1. Aug 2003, 16:42
so'n mist aber auch, da war ich wohl nicht ganz wach... ops
ist natürlich Quatsch was ich oben geschrieben habe, du willst es ja aus einer Stringlist löschen und nicht aus einem Array...
Alexander
 
daniel-volk

Registriert seit: 16. Jul 2003
170 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: Problem: Mittels ListBox Strings aus StringList löschen

  Alt 10. Aug 2003, 16:53
Danke für eure Hilfe, hab es inzwischen auch geschafft.

Ein Problem hab ich aber immer noch:
Ich möchte gerne, dass ich in der ListBox (Multiselect an) auch Items in ihrer Position verschieben kann. Das soll dann natürlich auch in der Stringlist passieren.

Wo liegt eigentlich der Vorteil, wenn ich ein array verwende?

Danke.
 
Thema geschlossen
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:11 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