Как присвоить выражение boolean полю TObject? Имеется класс с полем тип TObject.
Значение поля может быть булевого типа илил другим классом.
Не получается присвоить ему булевое значение, приведения типов (явное или as TObject) не помогают.
Возможно ли это сделать вообще, может стоит как-то сделать свой TBoolean?!TBar = class
field : TObject;
end;
...
var
bar : TBar;
...
bar.field := True;

21 Авг 2019 в 07:03
193 +1
0
Ответы
1

Нет, нельзя присвоить булевое значение напрямую полю типа TObject. Вместо этого, вы можете создать свой собственный класс TBoolean, который будет содержать булевое значение, и затем присвоить его полю вместо булевого значения.

Пример кода:

type
TBoolean = class
private
FValue: Boolean;
public
constructor Create(AValue: Boolean);
property Value: Boolean read FValue write FValue;
end;
constructor TBoolean.Create(AValue: Boolean);
begin
FValue := AValue;
end;
TBar = class
field : TObject;
end;
var
bar: TBar;
myBoolean: TBoolean;
begin
myBoolean := TBoolean.Create(True);
bar := TBar.Create;
bar.field := myBoolean;
end;

Таким образом, вы создаете объект класса TBoolean с булевым значением, и затем присваиваете этот объект полю field вашего класса TBar.

20 Апр 2024 в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир