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

А вам не кажется, что эта задачка явно для множеств? Вот примерно так можно это сделать:
Код:
unit Unit28;

interface

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

type
  TOption = (Red, Orange, Yellow, Green, LightBlue, Blue, Violet);
  TOptionSet = Set of TOption;

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

var
  Form28: TForm28;

implementation

{$R *.dfm}

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

procedure TForm28.FormCreate(Sender: TObject);
begin
 Options := [];
 CheckBox1.Tag := Ord(Red);
 CheckBox2.Tag := Ord(Orange);
 CheckBox3.Tag := Ord(Yellow);
 CheckBox4.Tag := Ord(Green);
 CheckBox5.Tag := Ord(LightBlue);
 CheckBox6.Tag := Ord(Blue);
 CheckBox7.Tag := Ord(Violet);
end;

end.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием