AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Doppelte Einträge in Listbox verhindern

Ein Thema von Chewie · begonnen am 28. Nov 2002 · letzter Beitrag vom 24. Aug 2008
Antwort Antwort
Chewie

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

Doppelte Einträge in Listbox verhindern

  Alt 28. Nov 2002, 16:13
Ich hab mal eine ganz doofe Frage. Ich glaube, letztens hab ich mal gesehen, wie man erreichen kann, dass in einer TStrings-Liste wie z. B. in einer Listbox jeder String nur einmal vorkommt. Das war soweit ich weiß eine einfache Eigenschaft. Aber ich find síe jetzt nicht mehr. Entweder sollte ich mal meine Augen untersuchen lassen oder ich hab halluziniert. Falls ersteres zutrifft, dann könnt ihr mir sicher noch mal auf die Sprüge helfen. Bei zweiterem würden vielleicht Adressen von Psychiatern helfen.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 28. Nov 2002, 16:36
Moin Chewie,

Du meinst wahrscheinlich die Eigenschaft Duplicates.
Die Items einer ListBox verfügen allerdings nicht über diese Eigenschaft.
Du könntest Dir aber mit IndexOf behelfen. Diese Methode kennen auch die ListBox.Items.
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
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#3
  Alt 28. Nov 2002, 16:51
Hi,

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to ListBox1.Items.Count -1 do
  begin
    if ListBox1.Items.Strings[i] = Edit1.Text then
    begin
      ShowMessage('Das Wort ' + ListBox1.Items.Strings[i] + ' wurde gefunden!');
    end;
  end;
end;
HTH

Grüsse, Daniel
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4
  Alt 28. Nov 2002, 16:52
Puh, gott sei Dank keine Halluzination. Ich werds dann wohl mit IndexOf machen, danke. Bbei welcher Klasse hab ich eigentlich dann Eigenschaft gesehen? Ich benutz nämlich nnur recht wenige VCL-Klassen und dachte, es wär die Listbox.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#5
  Alt 28. Nov 2002, 16:53
Zitat von Daniel B:
Hi,

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to ListBox1.Items.Count -1 do
  begin
    if ListBox1.Items.Strings[i] = Edit1.Text then
    begin
      ShowMessage('Das Wort ' + ListBox1.Items.Strings[i] + ' wurde gefunden!');
    end;
  end;
end;
HTH

Grüsse, Daniel
Klar, der gute alte eindimensionale Such-Algorithmus. Der ist mir nur zuviel Arbeit, und ich hab schließlich gedacht, dafür gäbs ne Eigenschaft. Aber mit IndexOf gehts einfacher als mit der Schleife.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 28. Nov 2002, 16:59
Moin Chewie,

Duplicates ist eine Eigenschaft von TStringList.
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
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7
  Alt 28. Nov 2002, 17:01
Zitat von Christian Seehase:
Duplicates ist eine Eigenschaft von TStringList.
Danke
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#8
  Alt 28. Nov 2002, 17:15
Andere Möglichkeit:

Delphi-Quellcode:
function delDoubleEntries(aList:TStrings):integer;
var
 a, b: integer;
begin
  result := 0;
  if not Assigned(aList) then exit;
  while a < aList.count - 1 do
  begin
    b := a + 1;
    while b < aList.count-1 do
    begin
      if aList.Strings[a] = aList.Strings[b] then
      aList.Delete(b)
    else
      inc(b);
    end;
      inc(a);
    end;
      result := aList.count;
end;
Chris
  Mit Zitat antworten Zitat
iaby

Registriert seit: 30. Nov 2002
Ort: BW
258 Beiträge
 
#9
  Alt 2. Dez 2002, 15:37
so müsste es auch funzen:
Code:
if listbox1.IndexOf('wort')> -1 then showmessage('wort gefunden');
ist vielleicht die einfachste möglichkeit
habs jetzt aus dem kopf gemacht, deshalb ohne garantie!
  Mit Zitat antworten Zitat
Alt 24. Aug 2008, 17:04     Erstellt von WellWork
Dieser Beitrag wurde von Sharky gelöscht. - Grund: Sieht mir nach Werbung aus
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Doppelte Einträge in Listbox verhindern

  Alt 24. Aug 2008, 18:37
[OT] Wer schreibt denn Werbung in uralte Threads? [/OT]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:39 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