Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 29 мар 2024, 07:50

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: DrawProgressBarEh в С++ Builder XE
СообщениеДобавлено: 19 окт 2019, 16:25 
Не в сети

Зарегистрирован: 06 окт 2019, 18:09
Сообщений: 5
Пытаюсь нарисовать ProgressBar в обработчике DBGridEh1Columns0AdvDrawDataCell:
Код:
Sender->DefaultDrawColumnDataCell(Cell, AreaCell, Column, ARect, Params);
DrawProgressBarEh(0, 0, 50, Sender->Canvas, ARect, clSkyBlue, cl3DDkShadow, clNone);
Processed = true;
Получаю ошибку [ILINK32 Error]
Unresolved external '__fastcall Toolctrlseh::DrawProgressBarEh(const const double, const const double, const const double, Graphics::TCanvas *, Types::TRect&, Graphics::TColor, Graphics::TColor, Graphics::TColor, const Toolctrlseh::TProgressBarParamsEh * const)' referenced from ... MAIN.OBJ

Подскажите, как правильно реализовать отрисовку в С++ Builder?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DrawProgressBarEh в С++ Builder XE
СообщениеДобавлено: 21 окт 2019, 11:38 
Не в сети

Зарегистрирован: 14 окт 2014, 11:19
Сообщений: 62
Я бы попробовал добавить в проект toolctrlsEh.pas для начала. Все равно ошибку дает?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DrawProgressBarEh в С++ Builder XE
СообщениеДобавлено: 21 окт 2019, 13:20 
Не в сети

Зарегистрирован: 06 окт 2019, 18:09
Сообщений: 5
Попробовал, но ошибка не ушла.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DrawProgressBarEh в С++ Builder XE
СообщениеДобавлено: 21 окт 2019, 14:46 
Не в сети

Зарегистрирован: 14 окт 2014, 11:19
Сообщений: 62
Версия Ehlib?
Попробовал данный текст на 9.4 + Builder 10.3.2 - скомпилировалось без вопросов.
Часто помогает сделать полный Build проекту.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DrawProgressBarEh в С++ Builder XE
СообщениеДобавлено: 21 окт 2019, 15:02 
Не в сети

Зарегистрирован: 14 окт 2014, 11:19
Сообщений: 62
Попробовал. На Builder 2010 тоже дает такую ошибку.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DrawProgressBarEh в С++ Builder XE
СообщениеДобавлено: 21 окт 2019, 21:09 
Не в сети

Зарегистрирован: 06 окт 2019, 18:09
Сообщений: 5
Версия библиотеки 9.4. В XE ошибка осталась после понижения до 8 и 7 версии.
На XE3 проект создался без ошибок.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DrawProgressBarEh в С++ Builder XE
СообщениеДобавлено: 21 окт 2019, 22:06 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1546
Добрый день.

В Embarcadero® Delphi 10.3 Version 26.0.34749.6593 + EhLib 9.4 Build 9.4.018 ошибка не воспроизводиться.

Попробуйте открыть ToolCtrlsEh.hpp и проверить, что все параметры точно совпадают с тем что требует линкер в строке
Unresolved external '__fastcall Toolctrlseh::DrawProgressBarEh(....
Если есть несовпадения, то попробуйте исправить строку в ToolCtrlsEh.hpp на строку которую требует линкер.

Есть вероятность что генератор hpp файлов неправильно создал список параметров для функции Toolctrlseh::DrawProgressBarEh.

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DrawProgressBarEh в С++ Builder XE
СообщениеДобавлено: 23 окт 2019, 15:25 
Не в сети

Зарегистрирован: 06 окт 2019, 18:09
Сообщений: 5
В ToolCtrlsEh.hpp так:
Код:
extern PACKAGE void __fastcall DrawProgressBarEh(const double CurrentValue, const double MinValue, const double MaxValue, Graphics::TCanvas* Canvas, const Types::TRect &Rect, Graphics::TColor Color, Graphics::TColor FrameColor, Graphics::TColor BackgroundColor, const PProgressBarParamsEh PBParPtr = (PProgressBarParamsEh)(0x0));
Переделал свой код так:
Код:
TProgressBarParamsEh pbp;
Sender->DefaultDrawColumnDataCell(Cell, AreaCell, Column, ARect, Params);
DrawProgressBarEh(0, 0, 50, Sender->Canvas, ARect, clSkyBlue, cl3DDkShadow, clNone, &pbp);
Processed = true;
Ошибка не ушла
Unresolved external '__fastcall Toolctrlseh::DrawProgressBarEh(const const double, const const double, const const double, Graphics::TCanvas *, Types::TRect&, Graphics::TColor, Graphics::TColor, Graphics::TColor, const Toolctrlseh::TProgressBarParamsEh * const)' referenced from ...\MAIN.OBJ


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DrawProgressBarEh в С++ Builder XE
СообщениеДобавлено: 23 окт 2019, 16:21 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1546
Добрый день.

Почему вы решили поменять свой код в файле *.cpp в то время как мы предложили изменить код в файле ToolCtrlsEh.hpp?

Надо попробовать точно написать определение функции как это требует линкер для строки
Цитата:
Unresolved external '__fastcall Toolctrlseh::DrawProgressBarEh(const const double, const const double, const const double, Graphics::TCanvas *, Types::TRect&, Graphics::TColor, Graphics::TColor, Graphics::TColor, const Toolctrlseh::TProgressBarParamsEh * const)' referenced from ...\MAIN.OBJ

Например, попробовать поменять const PProgressBarParamsEh PBParPtr = (PProgressBarParamsEh)(0x0)) на const Toolctrlseh::TProgressBarParamsEh * ParPtr.

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DrawProgressBarEh в С++ Builder XE
СообщениеДобавлено: 26 окт 2019, 11:35 
Не в сети

Зарегистрирован: 06 окт 2019, 18:09
Сообщений: 5
Исправил строку в .hpp на
Код:
extern PACKAGE void __fastcall DrawProgressBarEh(const double CurrentValue, const double MinValue, const double MaxValue, Graphics::TCanvas* Canvas, const Types::TRect &Rect, Graphics::TColor Color, Graphics::TColor FrameColor, Graphics::TColor BackgroundColor, const Toolctrlseh::TProgressBarParamsEh * ParPtr);
в файле проекта оставил как было
Код:
Sender->DefaultDrawColumnDataCell(Cell, AreaCell, Column, ARect, Params);
DrawProgressBarEh(0, 0, 50, Sender->Canvas, ARect, clSkyBlue, cl3DDkShadow, clNone);
Processed = true;
Ошибка
Код:
[ILINK32 Error] Error: Unresolved external '__fastcall Toolctrlseh::DrawProgressBarEh(const const double, const const double, const const double, Graphics::TCanvas *, Types::TRect&, Graphics::TColor, Graphics::TColor, Graphics::TColor, const Toolctrlseh::TProgressBarParamsEh * const)' referenced from ...\MAIN.OBJ


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB