Delphi - записи с вариантными частями

Я хочу иметь запись (структуру) с «полиморфным» составом. В нем будет использоваться несколько полей во всех случаях, и я хочу использовать другие поля только тогда, когда они мне нужны. Я знаю, что могу добиться этого с помощью различных частей, объявленных в записях. Я не знаю, возможно ли, что во время разработки я могу получить доступ только к нужным мне элементам. Чтобы быть более конкретным, посмотрите на пример ниже

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.

Возможно ли это?

6
задан RBA 26 October 2011 в 11:10
поделиться