Простой вопрос: а всё ли правильно, и есть ли «глюки» в разработке? И раньше и сейчас, в репозитарии бывают «крахи». Но, как заранее узнать о сбоях? Что делать, если стандартные средства исправления не работают?
Или вопросы по-другому: как получить «продвинутую» отчётность по проектам? Можно ли сделать свои средства доступа к данным хранилища, экспорта, импорта, переноса кода на другие языки программирования? Или более радикально – можно ли переделать хранилище «под себя» или, вообще, использовать другое, своё?
Хорошие вопросы. Тут, разработчики слегка пошли навстречу. И для начала, можно почитать файл помощи «Vo27Sdk.hlp» (для версии 2.7) или «Vo28Sdk.chm» (для 2.8) на тему «ADAM API Reference». А нетерпеливых – послать искать в Интернете реализованные примеры или готовые проекты.
Я тоже поискал:
Рациональный человек с деньгами найдёт себе что-то хорошее платное и успокоится. А любящий инструменты «под себя» - постарается найти бесплатный (или условно-бесплатный) проект с открытым кодом. Из этой троицы – это «Коломбо» («Columbo»). Автор, Ivo Wessel (он же – соавтор книги «Ca-Visual Objects: Effective Programming»), предоставил код «как есть», без запрета использования или изменений кода программы. Единственное – указывать его, как родоначальника разработки.
Иво поддерживал «Коломбо» до выхода версии КаВо 2.7a (CA-Visual Objects 2.7a). А после – перестал, переключился на программирование под iOS (iPhone и пр.).
В августе 2004-го он ещё пообещал посмотреть, что можно сделать для работы с новой версией, но отложил дело в «долгий ящик». Через какое-то время, программа «инспектора» затерялась в сети. Появлялись очередные версии КаВо, совместимость с ними не росла. Итог – забыт источник вдохновенья …
Нет, хорошие вещи бросать нельзя. Намедни, у меня было хорошее настроение, и я выложил инсталляционные пакеты в раздел поддержки («SoftWare Development Techniques и др.»). Адаптировал «Коломбо» под КаВо 2.7.40 и КаВо 2.8 SP3. Списался с автором, получил у него «добро» и сделал эту заметку.
Что в новых версиях КаВо?
А с выходом КаВо 2.7a, «Коломбо» получил ошибку:
Error message:
--------------
Error Code: 33 [ DATA TYPE ERROR ]
Subsystem: BASE
Function: =>LOGIC
Argument: NIL
Requested type: LOGIC
CallStack:
DEFERROR (Line: 141)
CCPANECAPTION:EXPOSE (Line: 4)
MYAPP:START (Line: 4)
START (Line: 8)
Описание - жуть… Но, поиск в SDK обнаружил изменение кода в методе Control:Dispatch(), в области вызова PaintBackground():
METHOD Dispatch(oEvent) CLASS Control
LOCAL oEvt := oEvent AS @@event
LOCAL msg AS DWORD
LOCAL struMsg IS _winMSG
LOCAL uRet AS USUAL
// local hPar as ptr
// (return value != 0) => message was handled internally
// => DON'T call default handler
// => return EventReturnValue to caller
SELF:EventReturnValue := 0L
msg := oEvt:uMsg
DO CASE
CASE msg == WM_ERASEBKGND
IF IsMethod(SELF, #PaintBackground)
// !!! Здесь
IF Send(SELF, #PaintBackground, PTR(_CAST, oEvt:wParam))
SELF:EventReturnValue := 1L
RETURN 1l
ENDIF
ENDIF
Нормальных решений два: исправить возвращаемое значение ccPaneCaption:PaintBackground() на логическое (TRUE) или переименовать используемый в Expose() метод. Я переименовал. Метод PaintBackground() может использоваться не только в Expose(). Зачем дёргать кота за усы?
Дальше. При переходе на КаВо 2.8 изменилось положение API-функций (для работы с хранилищем «Adam»). Программа опять перестала стартовать. Но, тут дело пошло быстрее – сразу нашёл, в какие dll-ки перешли старые функции, и сделал завершающую корректировку.:)
Я не ставил цель переписать «Коломбо». Моя задача – «завести» его. А, править там можно много чего. Хотите – делайте! В новых версиях КаВо появилась возможность задавать минимальные и максимальные размеры окон, заложены новые способы выравнивания контролов и пр. Не говоря уже о том, что разработчики предложили развитие инструментов (API-функций) для работы с хранилищем данных. Ну, а в «Коломбо» всё осталось максимально совместимо, как это видел автор – Ivo Wessel.
На фото – Ivo Wessel.
25.11.2013 г. Карандаш.
P.S.: Внизу заметки – ссылки для скачивания адаптированных вариантов «Коломбо» для КаВо 2.7.40 и КаВо 2.8 SP3. Рекомендуется, устанавливать их после инсталляции оригинального пакета «Columbo» для CA-Visual Objects 2.7. (Оригинал смотреть или на установочном диске CA-Visual Objects 2.7 или на нашем сайте в разделе поддержки для зарегистрированных пользователей). Но, можно пользоваться и без инсталляции – тогда у Вас не будет файлов помощи и мн. другого.
P.P.S.: Ко мне обратились с просьбами помочь найти исходный инсталляционный файл «Colombo». Я написал письмо и получил ответ от Ivo Wessel – он разрешил мне выложить на своём сайте установочную программу «Columbo» для Vo 2.7.
Файл взят с установочного диска «CA-Visual Objects» v. 2.7.
Моё замечание: При установке программы будет предложен каталог для установки. Рекомендую не использовать каталог с ранее установленным «CA-VO». Лучше указать что-то вроде «Columbo27».
Комментарии
I've been surfing online more