
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.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
|