// Упаковка-распаковка размерных типов var i: integer := 2; r: real := 3.14; o: object; begin o := i; // Упаковка: объект размерного типа integer упаковывается в объект ссылочного типа, // котрый и присваивается переменной o // Преобразование типов при упаковке - неявное writeln(integer(o)); // Распаковка: из упакованного объекта извлекается значение // Преобразование типов при распаковке - явное o := r; writeln(real(o)); try // При неверном преобразовании типов генерируется исключение InvalidCastException writeln(shortint(o)); except on e: Exception do writeln(e.GetType); end; end.