Форум программистов, компьютерный форум, киберфорум
C++ Builder: FireMonkey
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/190: Рейтинг темы: голосов - 190, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 13.12.2018
Сообщений: 11

Ошибка "cannot initialize object parameter of type"

09.12.2019, 15:43. Показов 45725. Ответов 12

Студворк — интернет-сервис помощи студентам
Добрый день.
Надеюсь кто-то сможет помочь.
Пришлось использовать Rad Studio 10.3 c++ builder. Раннее не пользовался им.
Мне нужно записать в переменную данные из TEdit, но появилась проблема. Возможно я что-то делаю не так, возможно дело в другом.

Выделяет Edit1 и остальные красным и показывает следующую ошибку:
cannot initialize object parameter of type 'Fmx::Edit::TcustomEdit' with an expression of type 'Fms::Edit::TEdit'
Я конечно понимаю, что это ошибка инициализации и тд., но вот как исправить не знаю.
В остальном ничего не правилось, все чисто.
Вот кусочек кода:
C++
1
2
3
4
5
6
7
8
double r;
 double x0,y0,x1,y1;
 double  a;
 r = StrToInt(Edit1->Text);
 x0 = StrToInt(Edit2->Text);
 y0 = StrToInt(Edit3->Text);
 x1 = StrToInt(Edit4->Text);
 y1 = StrToInt(Edit5->Text);
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.12.2019, 15:43
Ответы с готовыми решениями:

Ошибка error: cannot initialize a parameter of type 'int (*)[6]' with an lvalue of type 'int [this->Vi][this->Vi]'
Добрый вечер. Как решить ошибку error: cannot initialize a parameter of type 'int (*)' with an lvalue of type 'int ' Вот сам код ...

Ошибка: [Error] Project1.dpr(11): Constant object cannot be passed as var parameter Operator not applicable to this operand type
Помогите пожалуйста, в чем ошибка? помогите решить unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes,...

Ошибка: cannot initialize a variable of type 'LightsState' with an rvalue of type 'void'
Прошу подскажите как понять эту ошибку: main.cpp:20: error: cannot initialize a variable of type 'LightsState' with an rvalue of type...

12
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,395
Записей в блоге: 3
09.12.2019, 16:53
Datki, а Вас вот это ни о чем не говорит:
Цитата Сообщение от Datki Посмотреть сообщение
double r;
Цитата Сообщение от Datki Посмотреть сообщение
r = StrToInt(Edit1->Text);
И кроме того, Вы что, в FMX работаете? Так там очень много отличий от VCL...
0
5 / 4 / 1
Регистрация: 08.06.2019
Сообщений: 46
10.12.2019, 01:51
Datki, поясню, что для double скорее всего используется функция:
C++
1
r = StrToFloat(Edit1->Text);
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
10.12.2019, 09:03
Цитата Сообщение от AlexUner Посмотреть сообщение
для double скорее всего используется ...
Почему-то забыли про StrToInt64... .
0
0 / 0 / 0
Регистрация: 13.12.2018
Сообщений: 11
10.12.2019, 15:01  [ТС]
Это я исправил уже (на StrToFloat), не помогло и решил перейти на VCL.
Но дело в том, что там тоже ошибка подобная:
cannot initialize object parameter of type 'Vcl::Controls::TControls' with an expression of type 'Vcl::Stdctrls::TEdit'
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
10.12.2019, 15:18
Datki, Как выглядит сам проект? Если это не секрет - выложите архив.
0
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,395
Записей в блоге: 3
10.12.2019, 16:12
Цитата Сообщение от nick42 Посмотреть сообщение
Почему-то забыли про StrToInt64
Ну так как же так... Если переменная объявлена, как double - компилятор ее и будет понимать, как переменную с плавающей точкой... А что StrToInt, что StrToInt64 - это перевод в целое число!!! Ошибка будет...
А вообще ошибка, конечно, не совсем в этом, надо, действительно, проект глянуть хоть одним глазком...
1
5 / 4 / 1
Регистрация: 08.06.2019
Сообщений: 46
11.12.2019, 00:54
Datki, не обратил внимания что у тебя fmx, если не ошибаюсь, то это мультидевайсное приложение. А у компонентов fmx другие свойства, и я не про текст. В любом случае, если у тебя билдер, то советую заглянуть в библиотеки, которые либо можно найти в ошибках, которые выдаёт компилятор, либо в хэдере покапаться, ну и соответственно в файлах. Там уже смотреть функции и как ими пользоваться.

Добавлено через 6 минут
Еще можно перевести значения в int, а после присвоить значения переменным double. Или явные преобразования. Если конечно, это не критично
0
0 / 0 / 0
Регистрация: 26.09.2015
Сообщений: 2
11.12.2019, 14:08
Это я исправил уже (на StrToFloat), не помогло и решил перейти на VCL.
Но дело в том, что там тоже ошибка подобная:
cannot initialize object parameter of type 'Vcl::Controls::TControls' with an expression of type 'Vcl::Stdctrls::TEdit'
Позавчера начал работать на С++ билдере и ловлю точно такую ошибку (точнее ide подчёркивает красным все название элементов Edit1, Button1 и т.д и при наведении курсора вылазит точно такая строка cannot initialiaze...), но программа компилируется и работает нормально. Заметил, что если создать проект с нуля, то ничего подчёркивать не будет до тех пор, пока не сохранишь проект и не откроешь его заново. Честно-говоря очень бесит это красное подчёркивание... может кто подскажет в чём дело?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
11.12.2019, 14:57
Цитата Сообщение от Datki Посмотреть сообщение
Это я исправил уже (на StrToFloat), не помогло
И скорее всего пытались скормить ей не число, а буквы.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
11.12.2019, 15:17
float is a 32 bit IEEE 754 single precision Floating Point Number1 bit for the sign, (8 bits for the exponent, and 23* for the value), i.e. float has 7 decimal digits of precision.

double is a 64 bit IEEE 754 double precision Floating Point Number (1 bit for the sign, 11 bits for the exponent, and 52* bits for the value), i.e. double has 15 decimal digits of precision.
(C) "GeeksForGeeks"
... я, собственно, вот об этом.
0
0 / 0 / 0
Регистрация: 13.12.2018
Сообщений: 11
13.12.2019, 12:25  [ТС]
Выдает эту же ошибку, но все работает
И спасибо за ответы, все же перешел на VCL и теперь других ошибок поменьше.
0
Заблокирован
17.04.2020, 14:04
Цитата Сообщение от D1973 Посмотреть сообщение
Datki, а Вас вот это ни о чем не говорит:


И кроме того, Вы что, в FMX работаете? Так там очень много отличий от VCL...
А какие тут "отличия"?
Текст состоит из char-ов по 1 байту(если тут AnsiString), Int - это 4 байта, double - это 8 байт в значении
Тут что попало мешать в кучу никак нельзя Это же основы матчасти
Это целые значения в тексте легко перевести в Int, нет запятых(или точек) в тексте
А в double может еще экспонетное описание вылезти вдруг откуда ни возьмись,
то бишь в тексте мелькнет латинская буква 'e' )))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.04.2020, 14:04
Помогаю со студенческими работами здесь

Ошибка 512: Type error wrong type object, как исправить?
При записи |NewTail] компилятор пролог выдаёт ошибку 512 Type error wrong type object, подскажите как исправить?

Ошибка С2440 a value of type "Sylinteri *" cannot be used to initialize an entiti of type "Kappale"
Помогите, люди добрые! Не пойму, почему шайтан-машина не компилирует #include "Sylinteri.h" #include...

Ошибка CDO:Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Outlook.MailItem'
Здаствуйте у меня такая проблема, я получаю сообщения с Outlook'а путем простейших махинаций, когда запускаю цикл для сохранения имени...

ошибка Parameter must be an array or an object that implements Countable in
Добрый день, уважаемые! возникла данная ошибка: Warning: count(): Parameter must be an array or an object that implements Countable...

Ошибка: Constant object cannot be passed as var parameter
else if (TS = 'PRIVMSG') then begin uMessage:=''; for i:=1 to j do //Проверяем кто написал сообщение ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru