Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #8  
Старый 19.05.2013, 08:47
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Радость

можно еще немного модифицировать:
Код:
type
  IFlagContainer = interface
    procedure SetData(ID: Byte; Value: Boolean);
    function GetData(ID: Byte): Boolean;
    property Value[Index: Byte]: Boolean read GetData write SetData; default;
  end;

  TFlagContainer = class(TInterfacedObject, IFlagContainer)
  private
    FData: Byte;
    procedure SetData(ID: Byte; Value: Boolean);
    function GetData(ID: Byte): Boolean;
  end;

{ TFlagContainer }

procedure TFlagContainer.SetData(ID: Byte; Value: Boolean);
begin
  FData:=FData and not (1 shl ID) or ((Byte(Value) and 1) shl ID);
end;

function TFlagContainer.GetData(ID: Byte): Boolean;
begin
  Result:=((FData shr ID) and 1)=1;
end;

использование:

Код:
var
  f: IFlagContainer;
  i: Integer;
begin
  f:=TFlagContainer.Create;
  for i:=0 to 7 do f[i]:=(i mod 2)=0;
  for i:=0 to 7 do if f[i] then Memo1.Lines.Add(IntToStr(i));
end;

Destroy объекту не нужен.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:29.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025