Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: generische ObjectList: Löschen eines Elementes

  Alt 26. Jan 2015, 20:36
Zitat:
Delphi-Quellcode:
procedure Masken_ausblenden(akt_MaskID: String);
  var
    i : Integer;
    MaskeFeld: TMaskeFeld;
  begin
    for MaskeFeld in ObjectList_sichtbare_Masken do
      If MaskeFeld.NameID <> akt_MaskID then
        begin
          MaskeFeld.Visible := false;

          i := ObjectList_sichtbare_Masken.IndexOf(MaskeFeld);
          ObjectList_sichtbare_Masken.Delete(i);
        end;
  end;
Delphi-Quellcode:
procedure Masken_ausblenden(akt_MaskID: String);
  var
    MaskeFeld: TMaskeFeld;
  begin
    for MaskeFeld in ObjectList_sichtbare_Masken.Reverse do
      If MaskeFeld.NameID <> akt_MaskID then
        begin
          MaskeFeld.Visible := False;
          ObjectList_sichtbare_Masken.Remove(MaskeFeld);
        end;
  end;
Aber auch bei generischen Listen kann man für sowas immernoch eine For-Do-Schleife benutzen.

Oder vielleicht auch so?
Delphi-Quellcode:
procedure Masken_ausblenden(akt_MaskID: String);
  var
    MaskeFeld, MaskeFeld2: TMaskeFeld;
  begin
    MaskeFeld := ObjectList_sichtbare_Masken.Find(MaskID); // sowas ist das Erste, was man sich baut - womöglich mit passendem Comperator
    for MaskeFeld2 in ObjectList_sichtbare_Masken do
      MaskeFeld2.Visible := MaskeFeld2 = MaskeFeld;
    ObjectList_sichtbare_Masken.Clear;
    ObjectList_sichtbare_Masken.Add(MaskeFeld);
  end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat