Я хочу иметь запись (структуру) с «полиморфным» составом. В нем будет использоваться несколько полей во всех случаях, и я хочу использовать другие поля только тогда, когда они мне нужны. Я знаю, что могу добиться этого с помощью различных частей, объявленных в записях. Я не знаю, возможно ли, что во время разработки я могу получить доступ только к нужным мне элементам. Чтобы быть более конкретным, посмотрите на пример ниже
program consapp;
{$APPTYPE CONSOLE}
uses
ExceptionLog,
SysUtils;
type
a = record
b : integer;
case isEnabled : boolean of
true : (c:Integer);
false : (d:String[50]);
end;
var test:a;
begin
test.b:=1;
test.isEnabled := False;
test.c := 3; //because isenabled is false, I want that the c element to be unavailable to the coder, and to access only the d element.
Writeln(test.c);
readln;
end.
Возможно ли это?