2015-12-18 4 views
-1

У меня был такой код в Delphi 7:Delphi 10 преобразования TValueBuffer

var  
    mValueBuffer : TValueBuffer; 
begin 
    Double(MValueBuffer) := Date; 
end; 

Когда я компилирую это в Delphi 10 Сиэтла он терпит неудачу с недопустимым напечатанным материалом. Я использую блок Data.DB.

+0

* У меня был такой код * и * Не уверен, что был TValueBuffer *? Тогда я не получу ваш вопрос. Какова ваша фактическая проблема? –

+1

Вы сделали ту же самую ошибку в вопросе, который вы задали ранее. Вы не предоставили нигде достаточно подробных сведений. Пожалуйста, покажите [mcve]. Если вы этого не сделаете, то этот вопрос здесь не обсуждается. Пожалуйста, найдите время, прочитав статьи в [help]. –

+0

Постарайтесь добавить это! вы должны использовать Data.db для использования ... –

ответ

3

Выбрав информацию из своих комментариев и отредактировав вопрос, чтобы использовать их, мы можем теперь понять этот вопрос. Пожалуйста, обратите внимание на рекомендации, приведенные в комментариях к будущим вопросам.

Тип TValueBuffer объявлен в Data.DB как динамический массив байтов. Таким образом, тип cast недействителен. Вы не можете надеяться превратить динамический массив, по существу указатель, в значение с плавающей запятой двойной точности. Эти типы имеют разные размеры. Следовательно, ошибка компилятора. Даже если типы были одинакового размера, литье не имеет никакого смысла.

Почему это скомпилировано в Delphi 7. Ну, стандартные библиотеки Delphi 7 не имеют типа с именем TValueBuffer. Поэтому мы можем только предположить, что TValueBuffer определен в вашем коде или библиотеках, которые вы используете. Предположительно, ваше использование блока Data.DB скрывает тип TValueBuffer, предназначенный для использования. Найдите этот тип, и у вас будет ответ на вашу проблему.

+0

Спасибо, я ценю :) –

+0

В Delphi 7 это был указатель. –

+0

Если 'TValueBuffer' был указателем в D7, тогда ваш код также не будет компилироваться. Я честно не уверен, что вы хотите от нас здесь. Я не вижу, что еще я мог сделать, учитывая вопрос, который вы задали. Я не уверен, что вы полностью понимаете, как работает этот сайт и что мы можем предложить. –

Смежные вопросы