![]() |
Re: listview selected schleife?
Ich weiß immer noch nicht, warum du die ListItems vor der Bearbeitung überhaupt markieren willst...
marabu |
Re: listview selected schleife?
also ich kann auf die auszuführende procedure nur zugreifen wenn ein oder mehrere zeilen markiert sind. alle sind aber zuviel, deswegen ist nun die überlegung, einen eintrag nach dem anderen zu markieren.
bloss wie bekomme ich den dieses hin? mit
Delphi-Quellcode:
werden immer alle markiert.
with ListView do
for i := 0 To Items.Count -1 do Items[i]. Selected := true ; //hier dann die procedure gruss jolomino |
Re: listview selected schleife?
Zitat:
Grundsätzlich macht ein SelectAll() vor deiner Verarbeitungsschleife keinen Sinn. SelectAll() ist ein Befehl der innerhalb einer Action aufgerufen wird, die üblicherweise im Hauptmenü über "Bearbeiten | Alle markieren" zu erreichen ist. Die Verarbeitung der markierten ListItems geschieht in einer Action, die einem Menüpunkt im Kontextmenü deiner ListView zugeordnet ist. marabu |
Re: listview selected schleife?
auch ist ein selectall mit nachfolgender bearbeitung aller selektierten items herzlicxh sinnlos - da kann man auch gleich die selektion lassen wie sie ist und einfach alle bearbeiten. wenn die selektion nur was kosmetisches ist, kann man das anders machen.
|
Re: listview selected schleife?
also,
ich versuche es momentan ohne zeilen zu markieren
Delphi-Quellcode:
nun möchte ich aber, das wirklich step by step das listview abgearbeitet wird. es sollen max. 3 zeilen im listview bearbeitet werden, ist eine fertig, soll die nächste bearbeitet werden. so das immer 3 zeilen in bearbeitung sind. wie stelle ich das an, muss ich da nen zähler oder so setzen? muss ich da das abarbeiten in der schleife überwachen, mit rüchgabewert? hab keinen blassen :cry:
var
i : integer; Item : TListItem; begin for i:=0 to ListView1.Items.Count-1 do begin Item := ListView1.Items.Item[i] // Hier soll dann die verarbeitung sattfinden end; end; gruss jolomino |
Re: listview selected schleife?
Hallo jolomino,
Zitat:
Grüße vom marabu |
Re: listview selected schleife?
nun ja,
mit
Delphi-Quellcode:
wird ja die ganze listview aufeinmal abgearbeitet. nun möchte ich nur die ersten 3 zeilen bearbeiten, wegen der übersicht. wenn die drei zeilen fertig sind, sollen die nächsten 3 bearbeitet werden. oder besser gesagt, wen die ersten 3 zeilen in bearbeitung sind und eine davon ist eher fertig als die anderen 2, soll wieder eine zeile dazu in bearbeitung gehen. naja, wie gesagt, das halt immer 3 zeilen in bearbeitung sind, bis ich am ende der liste angekommen bin.
for i:=0 to ListView1.Items.Count-1 do begin
Item := ListView1.Items.Item[i] // Hier soll dann die verarbeitung sattfinden end; gruss jolomino |
Re: listview selected schleife?
Hai jolomino,
das was Du vorhast kannst Du nur mit Threads lösen. Du müsstest also für jede "Item-Bearbeitung" einen Thread erzeugen dem Du die Daten für die Bearbeitung übergibst. Wenn nun ein Thread fertig ist bekommt er die Daten von dem nächsten Item. Von der Geschwindigkeit dürfte das aber kaum schneller sein als die sequentielle Abarbeitung der Daten. |
Re: listview selected schleife?
Im Gegenteil, sogar noch langsamer. Oder sagen wir mal zumindest aufwändiger (neue Rechtschreibung? Schreibt man doch jetzt so, oder? :?: ). Denn jetzt müsstest du noch zusätzlichen Code schreiben, der verhindert, dass die Threads gleichzeitig auf ein Item zugreifen. Dazu musst du sie "synchronisieren", also kurz unterbrechen. Dann bist du mit einer sequentiellen Bearbeitung aber schon mal schneller...
|
Re: listview selected schleife?
ich finde auch, dass das nur zusatzarbet ist.
einfach die liste komplett durchlaufen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz