Показать сообщение отдельно
  #11  
Старый 31.01.2015, 13:53
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Пожалуй я погорячился насчет множеств именно для данной задачи. Тут больше подходят битовые операции в явном виде, т.к. Tag чекбокса может иметь более одного значения:
Код:
unit Unit28;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DIB, StdCtrls;

const
  Red = 1;
  Orange = 2;
  Yellow = 4;
  Green = 8;
  LightBlue = 16;
  Blue = 32;
  Violet = 64;

type
  TForm28 = class(TForm)
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    CheckBox6: TCheckBox;
    CheckBox7: TCheckBox;
    Memo1: TMemo;
    CheckBox8: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure CheckBoxClick(Sender: TObject);
  private
    Options: Integer;
  public
    { Public declarations }
  end;

var
  Form28: TForm28;

implementation

{$R *.dfm}

procedure TForm28.CheckBoxClick(Sender: TObject);
Var
  S: String;
begin
 Options := Options xor TCheckBox(Sender).Tag;
 S := '';
 if Red and Options <> 0 then S := S + ' Каждый';
 if Orange and Options <> 0 then S := S + ' Охотник';
 if Yellow and Options <> 0 then S := S + ' Желает';
 if Green and Options <> 0 then S := S + ' Знать';
 if LightBlue and Options <> 0 then S := S + ' Где';
 if Blue and Options <> 0 then S := S + ' Сидит';
 if Violet and Options <> 0 then S := S + ' Фазан';
 Memo1.Lines.Add(S);
end;

procedure TForm28.FormCreate(Sender: TObject);
begin
 Options := 0;
 CheckBox1.Tag := Red;
 CheckBox2.Tag := Orange;
 CheckBox3.Tag := Yellow;
 CheckBox4.Tag := Green;
 CheckBox5.Tag := LightBlue;
 CheckBox6.Tag := Blue;
 CheckBox7.Tag := Violet;
 CheckBox8.Tag := Red or Yellow or Green;
end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием