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;