Тип Variant
Компилятором FPC поддерживается тип variant. Для того чтобы включить поддержку вариантного типа, необходимо упомянуть в предложении uses модуль variants во всех модулях, в которых используется тип variant. Более того, компилятор должен быть в режимах Delphi или Objfpc.
Предназначен для использования в том случае, когда на этапе компиляции тип данных не известен, или может уточняться при выполнении программы. Введен для поддержки технологии OLE (Object Linking and Embedding – Связывание и внедрение объектов). Занимает в памяти дополнительно 2 байта для информации о фактическом типе данных. Эта информация позволяет компилятору создать код, осуществляющий при исполнении программы необходимые преобразования данных. С переменной типа Variant совместимы (могут быть в нее помещены) типы:
- целые или вещественные (кроме Int64),
- логические,
- строки,
- время и/или дата,
- OLE-объект (объект, переносимый системой из других приложений через буфер),
- массив произвольной размерности и длины, содержащий элементы перечисленных типов.
Пример:
program TipVariant;
{$mode objfpc}{$H+}
uses Classes, SysUtils, variants; // Ссылка на модули
var
V:variant;
I:integer;
R:real;
S:string;
begin
I:=10; // I – целое число
R:=2.34; // R – число c дробной частью
S:=’1.35’; // S – строка, в ней число c дробной частью
V:=I+R+S; // V – переменная типа вариант
end.