Zitat von
Björn Ole:
Edit: Beim Klick auf Absenden kam mir ...
war bei mir vorhin nicht anders
und wegen der Ungereimtheiten:
eigentlich/theoretisch sollte sich nichts verändert haben,
gegenüber deinem ursprünglichen Code
Ach ja, normaler Weise wird in Delphi nicht immer ALLES ausgewertet
if a or b then
ist hier z.B.
a = true, dann steht das Ergebnis schon fest
und
b wird nicht mehr verarbeitet ... also wenn
b eine Funktion ist, dann würde sie nicht aufgerufen.
gut, da war och ein Fehler, aber auf beiden Seiten
hab was falsch zusammengesetzt
und wenn ich das jetzt nochmal versuche,
Delphi-Quellcode:
bIsBusy := IsItemBusy(i);
if bIsBusy then
bDeleteAllBusy := UserWantsToDeleteAllBusyItems;
if bIsBusy and (not bDeleteAllBusy) then
Continue;
//bCanDelete := not (AOnlySelected and not Items[i].Selected);
//if bCanDelete then
// Delete(i);
Delphi-Quellcode:
bIsBusy := IsItemBusy(i);
DeleteAllBusy := bIsBusy and UserWantsToDeleteAllBusyItems;
if bIsBusy and (not bDeleteAllBusy) then
Continue;
Delphi-Quellcode:
bIsBusy := IsItemBusy(i);
if bIsBusy and (not (bIsBusy and UserWantsToDeleteAllBusyItems)) then
Continue;
Delphi-Quellcode:
bIsBusy := IsItemBusy(i);
if bIsBusy and not (bIsBusy and UserWantsToDeleteAllBusyItems) then
Continue;
dann kommt auch ein Problem deiner Seits raus
bIsBusy and not bIsBusy kann ja wohl nicht gehn und würde immer FALSE ergeben
[add]
Delphi-Quellcode:
procedure DeleteItems(AOnlySelected: boolean);
var
i: integer;
UWD, CalledUWD: boolean;
function GetUWD;
begin
if not CalledUWD then
begin
UWD := UserWantsToDeleteAllBusyItems;
CalledUWD := true;
end;
Result := UWD;
end;
begin
for i := Items.Count - 1 downto 0 do
begin
if (not IsItemBusy(i) or UserWantsToDeleteAllBusyItems)
and (not AOnlySelected or Items[i].Selected) then
Delete(i);
end;
end;
mal sehn, ob ich's jetzt kappiert hab
- nur löschen wenn nicht IsItemBusy oder der User will es doch
- und nur löschen wenn selektiert bzw. AOnlySelected=nein