Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Listbox - Seletierte Einträge (https://www.delphipraxis.net/7449-listbox-seletierte-eintraege.html)

Taladan 12. Aug 2003 14:14


Listbox - Seletierte Einträge
 
Gibt es eine Möglichkeit, bei einer Listbox die selectierten Einträge (zur not auch den Index) abzufragen?

Biohazard 12. Aug 2003 14:19

Re: Listbox - Seletierte Einträge
 
Hallo,

mit
Code:
listbox1.ItemIndex;
bekommst du den Index

und mit
Code:
listbox1.Items[listbox1.ItemIndex];
den Eintrag.

Tpercon 12. Aug 2003 14:21

Re: Listbox - Seletierte Einträge
 
Dazu findest du viel über die Suche.

Delphi-Quellcode:
for i := 0 to ListBox1.Items.Count - 1 do begin
  if ListBox1.Selected[i] then tudasunddas;
end;

alcaeus 12. Aug 2003 14:22

Re: Listbox - Seletierte Einträge
 
Meines Wissens nach kannst du nur "rückwärts" arbeiten: Mit ListBox1.Selected[Index] kannst du herausfinden ob ein gewisses Element selektiert ist...Ich kenne (noch) keinen Anderen Weg,sorry

Tpercon 12. Aug 2003 14:26

Re: Listbox - Seletierte Einträge
 
Zitat:

Zitat von alcaeus
Meines Wissens nach kannst du nur "rückwärts" arbeiten: Mit ListBox1.Selected[Index] kannst du herausfinden ob ein gewisses Element selektiert ist...Ich kenne (noch) keinen Anderen Weg,sorry

Ja, es wäre besser rückwärts die Schleife zu durchlaufen (for i := ListBox1.Items.COunt - 1 downto 0 do), wenn du die selektierten Einträge z.B. löschen möchtest. Ansosnten bekommst du ne schöne Fehlermeldung.

Yheeky 12. Aug 2003 15:18

Re: Listbox - Seletierte Einträge
 
Mal ne Frage: Warum sollte es "vorwärts" zu Problemen kommen?

Gruß Yheeky

Tpercon 12. Aug 2003 15:22

Re: Listbox - Seletierte Einträge
 
Weil dann sonst das löschen nicht geht, da die Schleife zu weit laufen würde.

Yheeky 12. Aug 2003 15:45

Re: Listbox - Seletierte Einträge
 
Doch, also ich habe ne Möglichkeit, mit der das Löschen auch "vorwärts" funktioniert:

Code:

...

    procedure DeleteListBox;

...

procedure TForm1.DeleteListBox;
var I : Byte;
    Exit : Boolean;
begin
Exit := False;

// Angenommen die ListBox enthält Einträge -> ansonsten...
// -> if ListBox1.Items.Count <> 0 then
for I := 0 to ListBox1.Items.Count-1 do
begin
if Exit = False then
   begin
   if ListBox1.Selected[i] = True then
      begin
      ListBox1.Items.Delete(I);
      DeleteListBox;
      Exit := True;
      end;
   end;
end;

end;

// Beim "Löschen-Button" die Prozedure aufrufen
procedure TForm1.Button1Click(Sender: TObject);
begin
DeleteListBox;

end;
Funktioniert bei mir einwandfrei...

Gruß Yheeky

Pseudemys Nelsoni 12. Aug 2003 15:54

Re: Listbox - Seletierte Einträge
 
was spricht gegen downto, wo man nur halbsoviele zeilen braucht?

Tpercon 12. Aug 2003 15:58

Re: Listbox - Seletierte Einträge
 
Genau, warum so viel Aufwand und das um 5 Ecken denken, wenn es auch einfach geht?!


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:53 Uhr.
Seite 1 von 2  1 2      

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