![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что внутри Variant?
kreyl © (2006-02-25 21:06:00)Есть класс, использующий для хранения параметра тип Variant (поскольку там может быть и integer, и string, и double).
И вот встал вопрос проверки введенного пользователем. То есть нужно узнать, можно ли этот variant счесть строкой, или целым, или дробным.
Стандартные функции типа VarIsType(...) не срабатывают, поскольку с их точки зрения тип варианта - неизменно varOleStr.
Не очень хочется превращать вариант в строку и разбираться, допустимые ли там символы... Есть ли еще :) варианты?
Заранее спасибо :-)
unknown (2006-02-25 21:32:00) [1]Variant - хитрая штука :-)
Используй свой "VarIsType", например :
function vIsType(v:Variant;vType:word):Boolean;
begin
case vType of
varDouble:
Result:=VarType(v) in [varDouble,varCurrency];
varInteger:
Result:=VarType(v) in [varSmallint, varInteger, varSingle,
varShortInt,varByte,varWord,varLongWord,varInt64];
end;
end;