AGB  ·  Datenschutz  ·  Impressum  







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

listview selected schleife?

Ein Thema von jolomino · begonnen am 6. Aug 2005 · letzter Beitrag vom 16. Aug 2005
Antwort Antwort
Seite 1 von 3  1 23      
jolomino

Registriert seit: 19. Jan 2005
34 Beiträge
 
#1

listview selected schleife?

  Alt 6. Aug 2005, 16:43
hi,
hab mal wieder ein problem. wahrscheinlich ist es überhaupt keines, sonder ich glotze nur schon zu langre drauf

also, ich habe ein listview gefüllt mit daten. wenn ich nun mit einer zeile etwas machen möchte, benutze ich folgenden befehl

Delphi-Quellcode:
if (ListView.Selected <> nil) then
  begin
//blablabla
nun möchte ich aber per multiselect, das alle markierten einträge bearbeitet werden, sprich er soll oben anfangen und nach unten hin alle selektierten bearbeiten. da ich aber listviewselected benutze, funzt es nicht. ich dachte ich würde mit folgendem code klar kommen, aber dem ist nicht so

Delphi-Quellcode:
for i := 0 to ListView.SelCount -1 do // Alle Einträge durchlaufen
    begin
   if (ListView.Selected <> nil) then
  begin
  //mach was
problem ist, nach einer weile wird der erste markierte eintrag bearbeitet, danach ist aber schluss. kann mir einer mal meine denkblokade nehmen

gruss jolomino

ps: upss, habe mich im forum versehen, kann es mal jemand verschieben?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: listview selected schleife?

  Alt 6. Aug 2005, 16:46
Ich habe es njetzt nicht gestestet, ob es geht, aber wenn, dann würde ich es so aufrufen:

if ListView1.Items[i].Selected then
  Mit Zitat antworten Zitat
jolomino

Registriert seit: 19. Jan 2005
34 Beiträge
 
#3

Re: listview selected schleife?

  Alt 6. Aug 2005, 17:04
Zitat von Matze:
Ich habe es njetzt nicht gestestet, ob es geht, aber wenn, dann würde ich es so aufrufen:

if ListView1.Items[i].Selected then
erstmal thx für den denkanstoss, aber leider ist das resultat das gleiche. ich könnt aus dem fenster springen
so funktioniert nicht einmal ein einzelner markierter eintrag

gruss jolomino
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: listview selected schleife?

  Alt 6. Aug 2005, 17:23
Hallo jolomino,

der Hinweis von Matthias war schon in Ordnung, aber es gibt mehrere Vorgehensweisen um alle markierten Items einer ListView zu bearbeiten:

Delphi-Quellcode:
with ListView do
  while Assigned(Selected) do begin
    ProcessItem(Selected); // das ist deine Routine
    Selected.Selected := false; // muss sein bei dieser Vorgehensweise
  end;

with ListView do
  for i := Items.Count - 1 downto 0 do
    if Items[i].Selected then begin
      ProcessItem(Items[i]);
      Selected.Selected := false; // nur wenn du die Markierung aufheben willst
    end;
Grüße vom marabu
  Mit Zitat antworten Zitat
jolomino

Registriert seit: 19. Jan 2005
34 Beiträge
 
#5

Re: listview selected schleife?

  Alt 6. Aug 2005, 17:44
Delphi-Quellcode:
with ListView do
  while Assigned(Selected) do begin
    ProcessItem(Selected); // das ist deine Routine <---- das verstehe ich noch nicht so ganz
    Selected.Selected := false; // muss sein bei dieser Vorgehensweise
  end;
[/quote]

erstmal thx, aber was meinst du mit processitem und das dieses meine routine wäre? sorry das ich so ein noob bin

gruss jolomino
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: listview selected schleife?

  Alt 6. Aug 2005, 17:55
Na ja, du wirst doch irgendetwas mit dem markierten ListItem machen wollen? Ich hielt es für keine schlechte Idee das in einer Prozedur ProcessItem() zu tun, weil dann deine Schleifenkonstruktion besser zu lesen ist, als wenn du 42 Statements mit in die Schleife zwängst.

marabu
  Mit Zitat antworten Zitat
jolomino

Registriert seit: 19. Jan 2005
34 Beiträge
 
#7

Re: listview selected schleife?

  Alt 6. Aug 2005, 17:58
jou danke, bin auch gerade drauf gekommen, habe nur zu voreilig gepostet....naja, nach so vielen stunden vorm pc, ist es ja kein wunder das die birne weich wird

danke leute für eure unterstützung

gruss jolomino
  Mit Zitat antworten Zitat
jolomino

Registriert seit: 19. Jan 2005
34 Beiträge
 
#8

Re: listview selected schleife?

  Alt 6. Aug 2005, 20:30
boah, das thema lässt mir keine ruhe

benutze ja nun folgendes, erstmal thx nochmal

Delphi-Quellcode:
listview.SelectAll;
 with ListView do

  while Assigned(Selected) do begin
    MultiPart.Start(GetSelectedFile(), True); // das ist deine Routine
    Selected.Selected := false; // muss sein bei dieser Vorgehensweise
    UpdateControls();
  end;
nun habe ich aber folgendes problem:
wenn ich nun alle markiere, dauerts ewig und 3 tage bis sich mal am anfang etwas tut. dabei findet mit "MultiPart.Start(GetSelectedFile(), True);" sofort ein aufruf statt, der vorher immer sofort bearbeitet wurde.
wie kann ich denn dieses nun umgehen?
wenn es keine lösung gibt, kann man dann immer 5 markieren vom listview und wenn einer davon fertig ist wieder einen dazu?

gruss jolomino
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: listview selected schleife?

  Alt 6. Aug 2005, 20:44
Verstehe ich dich richtig, SelectAll() dauert ewig? Vielleicht wird irgendein Ereigniscode (OnSelectItem?) abgearbeitet? Wenn du alle ListItems bearbeiten willst, warum markierst du sie dann vorher? Solange du noch nicht alle markierten ListItems bearbeitest, solltest du auf die Aktualisierung der ListView verzichten. Wenn du sehr viele ListItems markierst, dann solltest du eine Fortschrittsanzeige einbauen.

marabu
  Mit Zitat antworten Zitat
jolomino

Registriert seit: 19. Jan 2005
34 Beiträge
 
#10

Re: listview selected schleife?

  Alt 6. Aug 2005, 20:55
du hast natürlich recht
aber das selectall() dauert nicht lange, nur die anzeige das etwas im MultiPart.Start(GetSelectedFile(), True); passiert. deswegen war meine überlegung, 5 einträge selecten und wenn einer fertig ist, wieder einen dazu selecten, damit immer 5 einträge beaarbeitet werden. aber das bringt ja wohl auch nichts, da das ja das gleiche in grün ist ob ich nun erst 5 und dann immer welche drauf selecte oder gleich all, das bleibt sich gleich...oder etwa nicht ?

gruss jolomino
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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