Тема: Ошибки при работе с API

TechnologiCS 5.7.0.0(10948)
Создаю самостоятельное приложение.
Приложение на своей форме показывает модуль "Производственные партии".
Перед подключением к API выводится сообщение:

Unknown DataBase type.

Далее выводится окно подключения к TechnologiCS'у, дальше всё работает без ошибок, но после завершения программы
на экран выводится:

System Error.  Code: 1400.
Недопустимый дескриптор окна.

Что означают эти ошибки (в контексте работы с API)?
Вообще, где можно почитать об ошибках, возникающих при работе с API?

Re: Ошибки при работе с API

Unknown DataBase type.

Постараемся разобраться (где то в процессе инициализации проблема). Каким методом вы инициируете соединение с АПИ?

System Error.  Code: 1400.
Недопустимый дескриптор окна.

Это ошибка не АПИ (не надо пытаться найти ей объяснение). Где то неправильно высвобождаются ресурсы.

Раз вы показываете  формы TechnologiCS значит используете ICSDNAxForm. Попробуйте вызывать Module.Hide (в видео ролике  пример кода есть). В формах ввода сейчас данный интерфейс очень активно пользуется и проблем не создает ( в 10948 как раз поправили некоторые проблемы). Если не поможет - какой нибудь небольшой пример неплохо бы накидать. Попробуем промоделировать конечно, может получится повторить самим сразу.

Вообще ошибка ни на что не влияет, но неприятно конечно когда программа так завершает работу.

(изменено: Дмитрий Гамий, 11 сентября 2009 09:51:15)

Re: Ошибки при работе с API

Каким методом вы инициируете соединение с АПИ?

Инициирую так:

var
   TCSObj : CSDN_TLB.ITCS;
   TCSApp : CSDN_TLB.ITcs_Application;

implementation

procedure Tfrm_Main.FormCreate(Sender: TObject);
begin    
    TCSObj := CreateOLEObject('CSDN.TCS') as ITCS;
    TCSApp := TCSObj.Login;    
end;

А ошибка "System Error.  Code: 1400." возникает после завершения процедуры

procedure Tfrm_Main.FormDestroy(Sender: TObject);
begin    
    TCSApp := nil;
    TCSObj := nil;
end;

Re: Ошибки при работе с API

Кроме этого, не удается запустить ни один макрос из этой программы.
Причем, при отладке программы (в Delphi) после нажатия кнопки запуска любого макроса сразу выводится ошибка

"Запуск скрипта на выполнение не возможен!",

а при работе скомпилированного exe-файла - вообще никаких реакций. Такая ошибка после этого выводятся только при вызове команды "Редактировать макросы".

Re: Ошибки при работе с API

С первым уже разобрались. В TechnologiCS проблема имеется при любой инициализации АПИ из внешних утилит. Ни на что не влияет, но сообщение это выводится. Будем исправлять.
Со вторым - я уже сказал, попробуйте вызвать Module.Hide

Ну а макросы запустить ну получиться, они работают только из TechnologiCS.

Re: Ошибки при работе с API

Ну а макросы запустить ну получиться, они работают только из TechnologiCS.

А вот это совсем не есть хорошо...
Конечно, теперь есть настройка интерфейсов, можно убрать все команды для пользователя, в самостоятельном приложении наделать панелей инструментов и наклепать кучу кнопок со всевозможными действиями... Но если пользователь запустит обычный клиент  - не увидит ни одного действия...
Думаю, что в таком случае необходимо иметь возможность настраивать какой интерфейс подключать пользователю при входе в систему через API, а какой - при входе в клиентское приложение.

Re: Ошибки при работе с API

ну хорошо, не хорошо но так всегда было. Иначе в чем смысл в конфигурации TechnologiCS ?

А интерфейс тут действительно должен быть стандартным ( проглядели ). Ну это исправим конечно.

Спасибо сказали: Дмитрий Гамий1

(изменено: Дмитрий Гамий, 11 сентября 2009 10:52:56)

Re: Ошибки при работе с API

...но так всегда было

Прошу прощения, не знал... До настоящего момента не приходилось сталкиваться.

Может, нужно сделать, чтобы при вызове ТCsdnAxForm из API имелась возможность просто отключать видимость стандартной панель инструментов TechnologiCS'а?

С ошибкой "System Error.  Code: 1400." разобрался.
Вылечилось использованием метода ТCsdnAxForm.Free.

Спасибо за советы.

Re: Ошибки при работе с API

Может, нужно сделать, чтобы при вызове ТCsdnAxForm из API имелась возможность просто отключать видимость стандартной панель инструментов TechnologiCS'а?

Можно подумать конечно, но ведь есть еще меню и активные клавиши.
Для отображения данных лучше использовать ICSDNDbGrid - тоже самое, только как раз всего лишнего нету, плюс можно колонки выдавать только те что  пользователю нужны.

Re: Ошибки при работе с API

...но ведь есть еще меню и активные клавиши.

Я понимаю, что просто так просто этот вопрос решить нельзя, всё друг с другом связано.

А за ICSDNDbGrid - спасибо, мне самому что-то сразу в голову не пришло.
Просто хотелось всё сделать попроще и побыстрее - поцепил нужную CsdnAxForm на главную флорму, а там пусть пользователь макросы запускает...  :)