AGB  ·  Datenschutz  ·  Impressum  







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

mehrere Markierungen in Listbox

Ein Thema von padavan · begonnen am 21. Feb 2005 · letzter Beitrag vom 22. Feb 2005
Antwort Antwort
padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#1

mehrere Markierungen in Listbox

  Alt 21. Feb 2005, 06:07
Hallo Leute,

wie bekommt man in einer Listbox die Strings der markierten Zeilen zurückgeliefert?

Wenn man nur eine Zeile markiert hat, kann man ja den String etwa so in ein edit schieben wenn ich mich nicht irre

edit1.text := Listbox1.item[Listbox1.Itemindex]; Jetzt habe ich aber so gar keine Idee wie ich das anstelle, wenn mehrere Zeilen markíert sind, und schlimmer noch, wenn diese nicht hintereinander also an einem Stück markiert sind.

(klar das ich mehrere Einträge dann in ein array oder Memo schieben müsste)

Vielen Dank im Voraus.
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#2

Re: mehrere Markierungen in Listbox

  Alt 21. Feb 2005, 06:39
Statt ListBox1.Items kannst du mit ListBox1.Selected z.B. in einer for-Schleife jedes einzelne Item prüfen, ob es ausgewählt wurde.
Mehr dazu in der Delphi-Hilfe.
  Mit Zitat antworten Zitat
padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: mehrere Markierungen in Listbox

  Alt 21. Feb 2005, 07:54
Vielen Dank erstmal für die schnelle Antwort.
Aber ist diese Methode nicht sehr rechenintensiv für den Rechner wenn die Listbox viele Einträge enthält?
Falls es so ist, es aber keine andere Methode gibt, dann sei´s drum...
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: mehrere Markierungen in Listbox

  Alt 21. Feb 2005, 13:07
Ich denke, da brauchst du schon sehr viele Einträge, um etwas davon zu bemerken. Und ich kann mir auch nicht vorstellen, dass man diese Vorgehensweise noch sehr beschleunigen könnte.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: mehrere Markierungen in Listbox

  Alt 21. Feb 2005, 15:21
Alles klar, vielen dank erstmal
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 11. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: mehrere Markierungen in Listbox

  Alt 21. Feb 2005, 15:45
Zitat:
Und ich kann mir auch nicht vorstellen, dass man diese Vorgehensweise noch sehr beschleunigen könnte.
Und ob das möglich ist. Man muss nur gerade beim Selektieren merken (in einer Liste oder so), was man eigentlich ausgewählt hat, später liest man beim Bedarf diese Liste.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 11. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: mehrere Markierungen in Listbox

  Alt 21. Feb 2005, 15:59
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
 var a:integer;
begin
 randomize();
 for a:=0 to 20 do
       ListBox1.Items.Add(inttostr(random(10000)));
end;

procedure TForm1.ListBox1Click(Sender: TObject);
 var a,n,n1:integer;
     Indexes : array of Integer;
begin
 n := SendMessage(ListBox1.Handle,LB_GETSELCOUNT,0,0);
 SetLength(Indexes,n);
  ListBox2.Clear;
  n1 := SendMessage(ListBox1.Handle,LB_GETSELITEMS,n,Integer(@Indexes[0]));
  if n1<>n then
        Application.MessageBox('n1 = n muss sein!!!','Fehler');
  for a:=0 to n1-1 do
        ListBox2.Items.Add( ListBox1.Items.Strings[Indexes[a]]);
 SetLength(Indexes,0);
end;
Oder du machst das ganze so...
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#8

Re: mehrere Markierungen in Listbox

  Alt 21. Feb 2005, 18:09
Zitat von sniper_w:
Zitat:
Und ich kann mir auch nicht vorstellen, dass man diese Vorgehensweise noch sehr beschleunigen könnte.
Und ob das möglich ist. Man muss nur gerade beim Selektieren merken (in einer Liste oder so), was man eigentlich ausgewählt hat, später liest man beim Bedarf diese Liste.
Ok, gewonnen . Ich habe nur daran gedacht, nach dem Selektieren aus den Daten der Listbox die Einträge zu erhalten. Aber auch das get ja wohl mit Messages schneller.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: mehrere Markierungen in Listbox

  Alt 22. Feb 2005, 06:39
Also ich habe den ersten Vorschlag jetzt in meinem Programm umgesetzt. Wie könnte es anders sein, es ist natürlich die Playlist eines MP3-Players, auf jeden Fall sind bei knapp 2000 Einträgen in der Tat eigentlich kein merklicher zeitlicher Verzug erkennbar.

Vielen Dank!
  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 23:19 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