Einzelnen Beitrag anzeigen

NicoDE
(Gast)

n/a Beiträge
 
#13

Re: inkompatible Typen bei Mengen (Set)

  Alt 12. Jul 2005, 01:03
Zitat von TomDooley:
Nun möchte ich prüfen ob ein Integer einen Wert der Menge angenommen hat:
if (MyInteger in MyMenge) then...
Du möchtest einen Integer auf ein Element der Menge casten (Aufzählungsemelent).
Aber Du hast gar keinen Typ dafür definiert - also kannst Du auch keinen Cast anwenden.

Lösung: Definiere den Aufzählungstyp:
Delphi-Quellcode:
type
  TFoo = (f0, f1, f2);
  TFooSet = set of TFoo;

function Test(FooSet: TFooSet; FooBar: Integer): Boolean;
begin
  Result := TFoo(FooBar) in FooSet;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  FooSet: TFooSet;
  FooBar: Integer;
begin
  FooSet := [f0, f2];
  FooBar := Integer(f2);
  ShowMessage(BoolToStr(Test(FooSet, FooBar), True));
end;
  Mit Zitat antworten Zitat