AGB  ·  Datenschutz  ·  Impressum  







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

Listenelemente bedingt löschen

Ein Thema von Björn Ole · begonnen am 15. Okt 2009 · letzter Beitrag vom 16. Okt 2009
 
Benutzerbild von himitsu
himitsu

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

Re: Listenelemente bedingt löschen

  Alt 15. Okt 2009, 21:53
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
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 


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 02:20 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