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