Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: Listenelemente bedingt löschen

  Alt 15. Okt 2009, 21:39
Hat sich Delphi eigentlich nicht wegen des bDeleteAllBusy beschwert,
welches bei (not bIsBusy) nicht initialisiert wird?

erste Zusammenfassung:
Delphi-Quellcode:
for i := Items.Count - 1 downto 0 do
begin
  if IsItemBusy(i) and not UserWantsToDeleteAllBusyItems then
    Continue;

  bCanDelete := not (AOnlySelected and not Items[i].Selected);
  if bCanDelete then
    Delete(i);
end;
zweite/weitere Zusammenfassung:
Delphi-Quellcode:
var
  i: integer;

begin
  for i := Items.Count - 1 downto 0 do
    if not (IsItemBusy(i) and not UserWantsToDeleteAllBusyItems)
        and not (AOnlySelected and not Items[i].Selected) then
      Delete(i);
end;
und mit der Userabfrage eventuell so
Delphi-Quellcode:
var
  i: integer;
  UWD, CalledUWD: boolean;

  function GetUWD;
  begin
    if not CalledUWD then
    begin
      UWD := UserWantsToDeleteAllBusyItems;
      CalledUWD := true;
    end;
    Result := UWD;
  end;

begin
  UWD := false;
  CalledUWD := false;
  for i := Items.Count - 1 downto 0 do
    if not (IsItemBusy(i) and not GetUWD)
        and not (AOnlySelected and not Items[i].Selected) then
      Delete(i);
end;

jetzt bleibt noch eine Frage: hat sich der himi da irgendwo vertan?


[edit]
OK, ein Fehlerchen in GetUWD war schonmal drinnen
$2B or not $2B
  Mit Zitat antworten Zitat