Как использование bit/bit-operator к состоянию объекта управления?

Вот упрощенный метод forEach, который решит вашу проблему.

const cards = document.getElementById('tv-series-data')

results.forEach(result => {

  const card = document.createElement('div')
  card.id = result.id // ID's should be unique

  card.innerHTML = `<img src="${img}${result.poster_path}">`
  cards.appendChild(card)

})
5
задан Cesar Romero 5 February 2009 в 19:24
поделиться

3 ответа

Я действительно использовал бы набор для этого. Однако я вижу, что Вы действительно хотите байт. Используйте наборы везде затем преобразование типа к байту в конце.

Это решение потребует намного меньшего количества ввода, имеет поддержку стандартных операторов Дельфи и действительно не несет потери производительности, как указал Barry Kelly.

procedure Test;
type
  TSetValues = (
    TSetValue1   = 0,
    TSetValue2   = 1,
    TSetValue4   = 2,
    TSetValue8   = 3,
    TSetValue16  = 4,
    TSetValue32  = 5,
    TSetValue64  = 6,
    TSetValue128 = 7
  );

  TMySet = set of TSetValues;
var
  myValue: byte;
  mySet: TMySet;
begin
  mySet := [TSetValue2, TSetValue16, TSetValue128];
  myValue := byte(mySet);
  ShowMessage(IntToStr(myValue)); // <-- shows 146
end;
7
ответ дан 18 December 2019 в 13:20
поделиться

Я использовал бы набор для этого:

type
    TMyDatum = (mdLoaded, mdPersisted, mdChanged, mdMarkedToDelete, ...);
    TMyData = set of TMyDatum;

var
  Foo: TMyData;
begin 
  Foo := [mdLoaded, mdChanged];
  if (mdPersisted in Foo) then ...

Они реализованы как целые числа, таким образом, можно передать их легко. И я нахожу код очень, намного более читаемым, чем побитовые операторы.

6
ответ дан 18 December 2019 в 13:20
поделиться

Эта страница описывает операторы Delphi, включая побитовые операторы.

Это кажется, что необходимо использовать и оператор. Например:

const
  LOADED_FROM_DATABASE = 1;
  PERSISTED = 2;
  CHANGED = 4;
  // etc...

//...

if (bitFlags and LOADED_FROM_DATABASE) <> 0 then
begin
  // handle LOADED FROM DATABASE
end;

if (bitFlags and PERSISTED) <> 0 then
begin
  // handle PERSISTED
end;

// etc...

Для установки флагов можно использовать ИЛИ:

bitFlags := LOADED_FROM_DATABASE or PERSISTED or CHANGED;
1
ответ дан 18 December 2019 в 13:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: