Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Set durchsuchen (https://www.delphipraxis.net/136608-set-durchsuchen.html)

xZise 3. Jul 2009 20:47


Set durchsuchen
 
Hallo ihr,

ich habe ein Set einer Enumeration
Delphi-Quellcode:
type
  TEnum = (eA, eB, eC);
  TEnums = set of TEnum;
Nun habe ich eine Methode, die je nach Enum-Wert verschieden reagiert und eine Methode mit dem Set:
Delphi-Quellcode:
procedure DoSomething(AEnum : TEnum);
procedure DoSomethingOther(AEnums : TEnums);
Wie kann ich nun in "DoSomethingOther" die Einträge in AEnums durchgehen und mit DoSomething aufrufen?

Also sowas in der der Art:
Delphi-Quellcode:
for i := 0 to Length(AEnums) - 1 do
  DoSomething(AEnum[i]);
Ich könnte natürlich das umständlich machen, aber dass ist an sich ja ziemlich umständlich ;)
Delphi-Quellcode:
if eA in AEnums then
  DoSomething(eA);

...
MfG
xZise

Muetze1 3. Jul 2009 20:50

Re: Set durchsuchen
 
Delphi-Quellcode:
type
  TEnum = (eA, eB, eC);
  TEnums = set of TEnum;

procedure DoIt(const ASet: TEnums);
var
  lIndex: TEnum;
begin
  for lIndex := low(TEnum) to high(TEnum) do
  begin
    if lIndex in ASet then
      DoSomething(lIndex);
  end;
end;

xZise 3. Jul 2009 21:48

Re: Set durchsuchen
 
Danke,
damit funktioniert es.

MfG
xZise

Hawkeye219 3. Jul 2009 21:51

Re: Set durchsuchen
 
Hallo,

ich hätte noch eine Ergänzung:

Delphi-Quellcode:
procedure DoItAgain(const ASet: TEnums);
var
  lIndex: TEnum;
begin
  for lIndex in ASet do
    DoSomething(lIndex);
end;
Gruß Hawkeye


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz