In

From Lazarus wiki
Revision as of 13:55, 28 January 2022 by Alextp (talk | contribs)
Jump to navigationJump to search

Deutsch (de) English (en) suomi (fi)

The reserved word in:

  • It tests whether a value is in a set. It returns the boolean value true if the value belongs to the set and false if the value does not belong to the set.
  • It is also used with the reserved word for in for-in loop.
  • It is also usable in uses‑clauses.

example

program projectin;
uses SysUtils,TypInfo;
type
  Berry = (Blueberry,FlyHoneysuckle, Lingonberry, Raspberry,Snowberry,Strawberry);
  Berries = set of berry;
var
   basket: Berries;
   someberry:berry;
   str:string;
   i:integer;
begin
  basket := [];
  writeLn('Choose a berry from the following berries into your basket');
  repeat
    i:=1;
    for someberry in berry do
      begin
        Str := GetEnumName(TypeInfo(Berry),ord(someberry));
        writeln(i,' : ',Str);
        inc(i);
      end;
    writeln('0 : exit ');
    writeln;
    readln (i);
    if i>0 then
      begin
        someberry  :=Berry(i-1);
        Include(basket,someberry);
      end;
  until  i=0;
  if (FlyHoneysuckle in basket) or (Snowberry in basket) then
   begin
     writeln ('You have poisonous berries in your basket');
     if FlyHoneysuckle in basket then
       writeln ('Your basket has a poisonous Fly honeysuckle!') ;
     if Snowberry in basket then
       writeln ('Your basket has a poisonous Snowberry!');
   end;
  writeln('So you had these berries in your basket:');
  for someberry in basket do
  begin
    Str := GetEnumName(TypeInfo(Berry),ord(someberry));
    writeln(Str);
  end;
  readln ;
end.