Показать сообщение отдельно
  #6  
Старый 03.06.2010, 19:10
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,035
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну... примерно так:

Код:
type
  TWaterTemp = (wtNone, wtCold, wtWarm, wtHot);

  TSmesitel = class
  private
    FIsHotOpen : Boolean;
    FIsColdOpen : Boolean;
    FIsShower : Boolean;

    function GetWaterTemp : TWaterTemp;
  public
    constructor Create;
    destructor Destroy; override;

    procedure OpenHot;
    procedure OpenCold;
    procedure CloseHot;
    procedure CloseCold;
    procedure TurnShower;

    property IsColdOpen : Boolean read FIsColdopen;
    property IsHotOpen : Boolean read FIsHotOpen;
    property IsShower : Boolean read FIsShower;
    property WaterTemp : TwaterTemp read GetWaterTemp;
  end;

...

..

function TSmesitel.GetWaterTemp : TWaterTemp;
begin
  If FIsColdOpen And FIsHotOpen
    Then Result := wtWarm
    Else
      If FIsColdOpen And (Not FIsHotOpen) 
        Then Result := wtCold
         Else
           If (Not FIsColdOpen) And FIsHotOpen
              Then Result := wtHot
              Else Result := wtNone;
end;

ну а дальше - реализуй объявленные методы и доработай в соотв. со своей фантазией...
Ответить с цитированием