In

From Lazarus wiki
Revision as of 02:06, 28 January 2022 by Kai Burghardt (talk | contribs) (mention use in uses-clause)
Jump to navigationJump to search

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

The reserved word in 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. The word in is also used with the reserved word for in for-in loop. The word in 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.