Как присвоить выражение boolean полю TObject?
Попробую угадать задачу. Есть некое поле (назовём его UserData), но у нас-то пользовательские данные boolean!
Решение 1. Прямое преобразование, невзирая на несовместимости типов.someObj.UserData := TObject(true);
someBool := boolean(someObj.UserData);
+ Эффективнее всех.
− Запрещено разыменовывать.
Решение 2. Создать некий объект DummyObject. Обозначить nil=false, <>nil = true.someObj.UserData := dummyObject;
someBool := (someObj.UserData <> nil);

initialization
  dummyObject := TObject.Create;
finalization
  dummyObject.Free;
end.
+ Достаточно эффективно, можно разыменовывать.
− Если в классе есть неотключаемое автоуничтожение UserData — облом!
Решение 3. Создать класс TBoolObject.TBoolObject = class
public
  Value : boolean;
  // конструкторы опущу, деструктор не нужен
end.

someObj.UserData := TBoolObject(true);
someBool := (someObj.UserData as TBoolObject).Value;
+ Работает, когда в классе есть автоуничтожение UserData.
− Иначе — овчина не стоит выделки, тогда нам эти объекты придётся уничтожать самим.
Если же у вас тут экономия памяти и надо в одной памяти держать object или boolean, работает решение 4.TObjBool = record
case integer of
0 : ( asObj : TObject );
1 : ( asBool : boolean );
end;
+ Очень эффективно.
− Программист сам должен следить за тем, что там: объект или буль.
Изврат какой-то придумали. Конечно нельзя так. 
А как надо, не зная задачи, никто не подскажет.