Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001
ПРИМЕЧАНИЕ: Поскольку работа отладчика построена на обработке сообщений, то он не может остановить работу в точке останова, если он «думает», что система вошла в режим hard mode, поскольку в этом случае вы не сможете ничего сделать, и система просто напросто зависнет.
При возникновении ошибки во время отладки программы машина перезагружается. Что делать?
Nomadic отвечает:
A: Снести QEMM. Начисто. Простое отключение его функций не помогает.
Впрочем, это исправлено в QEMM 9.0.
Разное
Переустановка Delphi 2.0
Delphi 2
Данный совет поможет вам в вопросе переустановки Delphi 2.0. Если вам понадобиться дополнительная помощь, пожалуйста, свяжитесь со службой «Горячей линии» по телефону (408) 461-9195.
Рекомендации по переустановке Delphi 2
• Перед переустановкой Delphi 2.0, запустите утилиту удаления, щелкнув на иконке «add/remove program» (добавить/удалить программу) в Панели Управления Windows 95, или щелкнув на иконке «uninstall» в программной группе Delphi 2.0 в Windows NT.
‣ Не запускайте процедуру удаления с Delphi 2.0 CD.
• Перед удалением и переустановкой Delphi 2.0 завершите работу приложений, использующих Borland Database Engine и закройте Local InterBase Server (если он запущен), щелкнув на иконке Local InterBase (правой кнопкой мыши в системной панели задач Windows 95) и выбрав «shutdown».
• Установка Delphi 2.0 в Windows NT требует Windows NT версии 3.51 или более поздней.
• Перед установкой Delphi 2.0 убедитесь в том, что в Windows установлен самый последний service pack. Пакеты Service pack распространяются фирмой Microsoft Corporation. Хорошим источником является Интернет-сервер корпорации, расположенный по адресу www.microsoft.com.
• Если в вашей системе уже установлена Delphi 1.0, Delphi 2.0 вы должны установить в другой каталог. Единственный каталог, рекомендуемый для общего пользования обоими версиями Delphi, каталог IDAPI.
• Перед установкой убедитесь в том, что вы имеете права администратора системы.
• Установка Delphi 2.0 на сетевой сервер не поддерживается.
• Для установки Delphi 2.0 на компьютере, не имеющего привода CD-ROM, используйте сетевое соединение, или соединение через последовательный порт с использованием кабеля для параллельного или последовательного порта, копируйте установочные файлы с Delphi 2.0 CD во временный каталог компьютера, на котором вы хотите провести установку, и затем запустите программу установки из временного каталога компьютера, не имеющего CD-ROM. После успешной установки вы можете удалить файлы, которые вы скопировали во временный каталог.
• Если на компьютере запущен stacker, переименуйте VSTACKER.386 (расположенный в вашем каталоге windowssystem) в VSTACKER.$$$. Перезапустите Windows и снова запустите программу установки.
• Если вы выключили поддержку виртуальной памяти, вам необходимо ее снова активизировать, так как программе установки требуется по меньшей мере 64Мб виртуальной памяти.
• Ваша операционная система должна поддерживать длинные имена файлов.
• Если на машине установлен Paradox, то перед установкой Delphi снимите со всех файлов блокировки.
Ошибки установки
• Если мастер онлайн-регистрации не завершил до конца процедуру онлайновой регистрации, запустите снова процедуру установки и нажмите кнопку Cancel (отмена) на запрос онлайновой регистрации. Пожалуйста заполните и вышлите регистрационную карточку, включаемую в поставку вашего продукта Delphi 2.0.
• Если в процессе установки вы получите пустое диалоговое окно, отмените установку и пробуйте снова, пока установка не пройдет успешно.
• Если в процессе установки вы получите одно из следующих сообщений об ошибке:
«out of disk space» (недостаточно места на диске),
«no temp var» (нет временных переменных),
«error 101» (ошибка 101)
«error 102"(ошибка 102)
Освободите дисковое пространство и/или убедитесь в наличие переменных среды и временного каталога. На диске, куда устанавливается Delphi, во временном каталоге должно быть достаточно свободного места.
• Если в процессе установки вы получите следующую ошибку:
«Install Shield error filename –51» (ошибка Install Shield при работе с файлом –51),
то попробуйте сделать следующее:
1. Скопируйте все файлы (КРОМЕ CTL3D32.DLL) из каталога runimagedelphi20windowssystem32, расположенного на Delphi 2.0 CD, во временную директорию вашего жесткого диска.
2. Сбросьте флажок «read only» (только для чтения) во всех файлах, скопированных во временный каталог.
3. Скопируйте файлы в ваш каталог windowssystem, или windowssystem32 для системы Windows NT.
4. Снова запустите установку.
Другая информация, необходимая для успешной установки
• Попробуйте выполнить установку с вашего жесткого диска. Чтобы сделать это, удалите Delphi 2.0, затем просто скопируйте файлы из каталога установки Delphi 2.0 CD во временный каталог вашего диска, после чего запустите из этого каталога программу установки. После успешной установки скопированные во временный каталог файлы можно удалить.
• Временно переименуйте файл win.ini (расположенный в вашем каталоге Windows) в win.in$, перезагрузите систему и переустановите или перезапустите Delphi 2.0. Если это поможет, то причиной невозможности в установке Delphi могут быть любые программы, указанные в секции run или load файла win.ini, или нестандартные драйверы принтера.
• Загрузите стандартный видеодрайвер, поставляемый с вашей системой Windows.
• Проверьте атрибут «read-only» (только для чтения) для файлов, расположенных в каталогах Windows и windowssystem.
Вопросы, которые могут возникнуть после установки
• Если при попытке установки 32-битного ODBC драйвера для BDE вы получаете сообщение об ошибке «odbc is corrupt or not installed correctly» (ODBC испорчен или неправильно установлен) или «BDECFG32.EXE Error» (ошибка BDECFG32.EXE), то в первую очередь вам нужно установить 32-битный менеджер ODBC, доступный в InterSolv и Microsoft. Хорошим источником является Интернет-сервер корпорации Microsoft, расположенный по адресу www.microsoft.com.
• Если вы установили Delphi 1.0 после установки Delphi 2.0, и Delphi 2.0 загружает файлы помощи от Delphi 1.0, удалите любые ссылки на файлы помощи Delphi 1.0 из файла WINHELP.INI, расположенного в вашем каталоге Windows.
Как проводить локализацию своих приложений?
Nomadic советует:
В Delphi 3 и 4 есть специальные механизмы, позволяющие приложение «переделать» на любой язык после компиляции. Для D3 надо посмотреть в хелпе, по-моему, internationalization или что-то в этом роде. Для D4 вообще все делается ОЧЕНЬ просто:
1. берется проект, компилируется;
2. тут-же, не закрывая проект, вызвается New|Resource DLL Wizard, в нем указывается, какие формы и модули должны подвергнуться переводу на другой язык;
3. в результате работы Wizard появляется проект (sic!) с RC и DFM. Открываем формы, и переделываем все сообщения + размер (соотв. длине сообщений);
4. Компилируем. В результате получается файл xxxxxxx.rus, где xxxxxxx – название исходного проекта;
5. Запускаем xxxxxxx.exe. Видим некий не наш язык. Подкладываем в каталог с этим exe изготовленный файл xxxxxxx.rus, и запускаем exe повторно. Видим абсолютно ВЕЗДЕ переведенные сообщения.
p.s. файл RUS можно подставлять и убирать по вкусу.
crtdll.dll в программах на Delphi
Здравствуйте.
Тут открыл кое-что, возможно, давным давно всем известное. :) Поделюсь на всякий случай.
Сначала немного о корнях проблемы. Не секрет, что в Delphi модуль Math поставляется только с Enterprise-версией программы. А платить больше тысячи долларов только за то, чтобы воспользоваться парой функций совсем не хочется (мне, например, простенькой atan2 часто не хватало).
Простым решением является «заимствование» модуля Math из пиратской Enterpise-версии, но это, вообще-то, воровство. Самому же создавать матеатическую библитеку с нуля – занятие неблагодарное (по крайней мере достаточно трудоёмкое).
Не работая плотно на MSVC я как-то был не в курсе наличия библиотеки crtdll.dll в Windows (насколько мне удалось выяснить, она таки является частью операционной системы, по крайней мере ставится вместе с Windows 9x/NT/2000). С её помощью можно решить указанную проблему, воспользовавшись готовым решением, а именно – объявить все необходые функции из math.h в своей программе и наслаждаться. :)
Пример с atan2:
function atan2(x, y: double): Double; stdcall; external 'crtdll.dll' name 'atan2';
Проверено – работает. Поскольку метод открылся буквально только что, я ещё не успел сделать модуль-обёртку для всех математических функций. Видимо, сделаю и отдам во всеобщее пользование.
Да, в crtdll.dll много фукнций, не связанных с математикой, в частности, если вы в программе используете PChar, то можно воспользоваться набором сишных strcmp, strcpy…, так же доступны isalpha, isdigit…, и, наконец, bsearch и qsort. :)
С уважением,
Марк Шевченко.
Как сказать VCL, чтобы клавиши shortcut пунктов главного меню главной формы действовали только в этой форме (но не в модальных окнах, к примеру)?