记录类型变量怎么赋值给变体

记录类型变量如何赋值给变体?

type
    TColumnInfo   =   record
        FieldName:   string;
        Caption:   string;
        Width:   Integer;
    end;

var
    V:   Variant;
    R:   TColumnInfo;
begin
    V   :=   R;
    {[Error]   uSrvRDM.pas(82):   Incompatible   types:   'Variant '   and   'TColumnInfo '}
end;

有什么变通方法?

------解决方案--------------------
procedure TForm1.Button1Click(Sender: TObject);
type
PColumnInfo=^TColumnInfo;
TColumnInfo = record
FieldName: string;
Caption: string;
Width: Integer;
end;

var
V: Variant;
R: TColumnInfo;
P:Pointer;
begin
//记录初始化
R.FieldName:= 'FieldName ';
R.Caption:= 'Caption ';
R.Width:= 100;

//TColumnInfo转换为Variant类型
V := VarArrayCreate ([0, SizeOf(TColumnInfo)], varByte);
P:=VarArrayLock (V);
CopyMemory(P,@R,SizeOf(TColumnInfo));
VarArrayUnlock (V);

//Variant类型转换为TColumnInfo
P := VarArrayLock (V);
R:=PColumnInfo(P)^;
with R do
ShowMessage(Format( '%s %s %d ',[FieldName,Caption,Width]));
VarArrayUnlock (v);
end;

//你自己写个转换函数吧