2017-10-17 118 views
1

我想在Delphi中解析webservice中的結果對象。現在我需要解析一個變體到TXSDateTime,因爲我不知道類型。例如:Parse Variant to TXSDateTime

if propInfo.PropType^ = TypeInfo(TXSDateTime) then 
begin 
    value := GetPropValue(objects[i], propInfo); //only returns a Variant 
    dateXSvalue := ???; //need to parse value to dateXSvalue; 
end; 

函數現在返回一個Variant,我不能解析到TXSDateTime。它會工作,如果我知道是什麼類型,因此,例如:

dateXSvalue := Contract(objects[i]).StartDate; 

那麼怎麼可能解析的Variant到TXSDateTime不知道確切的類型?

+0

'VarType(value)'給了你什麼?這可能是一個指向TXDDateTime實例的指針。 – GolezTrol

+0

@GolezTrol返回3 –

+2

3 ='varInteger'(單元系統,參考VarType文檔)。確實可以是一個指針。你可以嘗試'TXSDateTime(Integer(value))'看看它爲你做了什麼? – GolezTrol

回答

1

該變體將包含一個整數(VarType(value) = varInteger),其中包含TXSDateTime實例的地址。你應該可以簡單地如下所示:

XSDateTime := TXSDateTime(Integer(value));