** Admin |
Отправлено: 17.12.2005, 10:28 |
|
Не зарегистрирован
|
Начались глюки.
Откомпилировал простейший проект, который состоит из
пяти строк:
CODE |
//--------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
Table1->Active = true;
frxReport1->LoadFromFile("1.fr3",true);
frxReport1->PrepareReport(true);
frxReport1->ShowPreparedReport();
}
//-------------------------------------------------------
|
откомпилилось, естественно без ошибок.
При запуске (Run) наглухо все виснет !
При этом загрузка ЦП — 100%, доступно памяти — 16 МБ
(и это из 256 Мб оперативной памяти) и свободно на диске
С — 770 Мб.
Причем до нажатия на эту кнопку Button1 и выполнения
этого кода и не доходит, виснет все при запуске программы !!!
Самое интересное — вчера этот самый проект работал
и запускался !
И как это дерьмо, интересно, лечить ? Что в нем могло так глюкнуться ?
|
|
Admin |
Отправлено: 17.12.2005, 10:54 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Плюнул на все, создал новый проект из одной формы, проект запустился.
Вставил код и компоненты из второй формы.
При компиляции и попытке запуска программы — опять зависание,
Windows не висит, висит именно BDS2006,
загрузка проца — 100%, свободной оперативной памяти — 18 Мб
из 256 Мб (по показаниям Диспетчера Задач Windows)
Такое впечатление, что Pentium-3 500 с 256 мб памяти
для BDS2006 не хватает ! Хотя на нехватку памяти и не ругается.
Ладно, знимаем задачу, запускаемся по новой,
открываем опять этот проект.
Удаляем с формы компоненты и код нажатия на кнопку,
сохраняем изменения (Save All). запускаем компиляцию -
Project-Build. Компиляция естественно проходит без ошибок
запускаем программу — и получаем опять загрузку проца 100%
и зависание среды BDS !!!
|
|
Admin |
Отправлено: 17.12.2005, 21:48 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Причем такой глюк происходит, если запускать программу из
среды BDS, если ее запускать саму по себе — все нормально
работает.
Но количество отжираемой BDS памяти конечно весьма и весьма
велико.
Далее, добавляю на форму компоненты TTable, TDBGrid, TDataSource,
TfrxReport, TfrxDatase, связываю их между собой, пишу простейший
обработчик нажатия на кнопку Button1
CODE |
void __fastcall TForm2::Button1Click(TObject *Sender)
{
Table1->Active = true;
frxReport1->LoadFromFile("1.fr3", true);
frxReport1->ShowReport(true);
} |
(естественно делаю в дизайнере FastReport-a простейший отчет
из таблицы учебной базы BCDEMOS, называю файл сотчетом 1.fr3)
Компиляция — понятно, без ошибок и warning-ов.
Запускаю на выполнения из среды BDS — загрузка ЦП-100% и зависание,
запускаю программу из проводника — Access Violation по чтению памяти !!!!!
Хорошо, меняю только свойства этого проекта -
Снимаю галочки: Build With Runtime Packages и Use Dynamic RTL.
Компилю проект — получаю .ехе на 1835 Кб.
Запускаю его из проводника — программа запускается
и работает без ошибок: открывает таблицу и строит
выводит по ней отчет.
Запускаю программу из среды BDS (Run): также все запускается и
работает без ошибок.
Память — в норме, еще свободно — 65 Мб оперативной.
В обшем — в результате экспериментов установил — эту беду
вызывает компонент FastReport, без него все работает
нормально — с ним — глюки.
|
|
Admin |
Отправлено: 17.12.2005, 22:01 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Что именно вызывает эти глюки — не знаю.
Возможны варианты -
1. На компьютере также установлен FastReport другой версии 2.54
в C++Builder 6
2. Русификация FastReport выполненная утилитой Recompile.exe,
входящей в поставку FastReport.
--------------------------------------------
1. Удаляю из среды BDS2006 все компоненты FastReport,
удаляю пути к папкам, с компьютера деинсталлирую оба FastReport-a,
удаляю все папки с FastReport, перезагружаю компьютер.
|
|
** Admin |
Отправлено: 17.12.2005, 22:37 |
|
Не зарегистрирован
|
Итак, продолжаю: перезагрузил компьютер, еще раз проверил
удаление .bpl файлов из WINNT/SYSTEM32
Запустил установку FastReport 3.19 в BDS ( файл fr3_19_26_d10p.exe )
Все успешно установилось.
Захожу в BDS2006 — на палитре появились вкладки FastReport-a и FastScript-a.
Открываю сохраненный ранее проект (который глючил),
запускаю — все работает отлично, без глюков.
Значит глюк был из-за какой-то из двух вышеперечисленных причин !
Но — FastReport — увы, пока на английском языке. |
|
Admin |
Отправлено: 17.12.2005, 23:21 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Далее — запускаю утилиту recompile.exe, указываю
русификацию FastReport, все нормально русифицируется,
утилита показывает перекомпиляцию 4 файлов.
Запускаю BDS2006 — захожу — FastReport русифицирован нормально.
Открываю проект, который нормально работал в FastReport
до Recompile и запускаю его Run — получаю загрузку ЦП-100%
и зависание BDS2006 — то есть опытным путем устанавливаем, что
глюк начинается после русификации FastReport утилитой
recompile.exe !
Запускаю этот exe из проводника — получаю AccessViolation !
Глюк полностью повторяется !
|
|
Admin |
Отправлено: 17.12.2005, 23:33 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Но !
Если переключиться на режим (снять галочки)
в BDS206 — Packages — Build With Runtime Packages
откомпилить и запустить проект — все работает нормально.
|
|
** Admin |
Отправлено: 19.12.2005, 22:16 |
|
Не зарегистрирован
|
Все, проблема решена !
По совету службы поддержки FastReport:
Время: 18.12.2005 23:46:08 [ Цитировать ]
От кого: [13690] (den26481) Den Zubov (техподдержка)
После смены языка сделать "Recompile all Packages".
Помогло. И FastReport работает без проблем !
|
|