RUS  ENG 

Проблемы с разработкой плагина

Страницы: Пред. 1 2 3 След.
RSS
Проблемы с разработкой плагина
 
Добрый день!
в ZuluThermo создаю новую сеть (кнопка "Создать новую сеть").Потом вхожу в редактор баз данных, и открываю там zb-файл (например, uch). Меняю источник данных на другой (таблица uch, но только заполненная), при этом перестаёт работать запрос (кнопка "Тест" в редакторе - "Все записи" - "Выполнить"). Появляется сообщение "No SQL statement available". Если переформировать запрос, всё работает нормально. Можно ли сделать так, чтобы не нужно было переделывать запрос (мне нужно оставить прежние пользовательские названия полей)?
 
Извините за беспокойство! Уже не отвечайте - перепутал источники данных (обращался к пустой таблице).
 
К предыдущим двум сообщениям:
при смене псевдонима (в новой таблице есть данные), теперь опять не работает запрос. Не могу понять, в чём дело.
 
К предыдущим двум сообщениям:
при смене псевдонима (в новой таблице есть данные), теперь опять не работает запрос. Не могу понять, в чём дело.
 
Смена псевдонима: - псевдоним таблицы в запросе ?
Если да, то нельзя, например, давать псевдонимы, совпадающие с ключевыми словами SQL или имена с пробелами или кириллицей.
Что конкретно не так, можно проверить в редакторе запроса в Тесте ("Все записи", "Выполнить) - что выдает ?
 
Я подразумеваю не псевдоним таблицы в запросе, а BDE Alias. Постараюсь объяснить подробнее. У меня есть файл (например, uch.zb). Открываю его в редакторе базы данных. В разделе таблиц я вижу, что у меня подключена таблица uch, сформированная автоматически (на данный момент, пустая). При этом, также сформирован запрос, в котором участвует таблица uch. Вместо этой таблицы я выбираю таблицу с точно таким же названием и структурой (но только заполненную) из другого источника данных. При этом, не работает запрос. В "Тесте" ("Все записи", "Выполнить) текст запроса не отображается и выдаётся сообщение "No SQL statement available". Поэтому приходится переформировывать запрос и заново прописывать пользовательские названия полей.
 
А к какому источнику создан BDE Alias (STANDARD, SQL Server, и т.д.) ?
 
STANDARD (Paradox).
 
Пришлите, пожалуйста, файл описателя базы данных .zb на [email protected] (Дмитрий) посмотреть. Так не сказать, в чем ошибка.
 
При установке версии 5.2.0.2455 вышеуказанная проблема решилась. Возникла другая проблема: перестало работать свойство BaseName (ObjectType) - не получается программно задать его значение.
 
Почему в новой версии Zulu не работает свойство BaseName (ObjectType): не получается программно задать его значение - в редакторе структуры слоя ничего не отображается.
 
В последнем релизе у нас изменился принцин подключения баз, изменился редактор структуры слоя. Св-во BaseName сейчас исправляем, как исправим, сразу выложим.
 
Мы выложили обновление (от 29.09.2006), там эта ошибка исправлена.
 
Здравствуйте!
Возникла проблема при задании внедряемого пункта меню. Пытаюсь внедрить свой пункт в меню "Слой", но ничего не получается (в меню ничего не отображается). Приведу пример reg-файла:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Zulu\Plug-Ins\MyPlugin]
@="Мой плагин"
"Description"="Мой плагин"

[HKEY_LOCAL_MACHINE\SOFTWARE\Zulu\Plug-Ins\MyPlugin\Commands]

[HKEY_LOCAL_MACHINE\SOFTWARE\Zulu\Plug-Ins\MyPlugin\Commands\Open]
@="Мой плагин"
"Description"="Мой плагин"

[HKEY_LOCAL_MACHINE\SOFTWARE\Zulu\Plug-Ins\MyPlugin\Commands\Open\MenuItem]
@="<Layer>\\\\&Мой плагин"

[HKEY_LOCAL_MACHINE\SOFTWARE\Zulu\Plug-Ins\MyPlugin\Commands\Open\Method]
@="MyPluginMainMethod"

[HKEY_LOCAL_MACHINE\SOFTWARE\Zulu\Plug-Ins\MyPlugin\Menu]
@="Layer\\\\&Мой плагин"

[HKEY_LOCAL_MACHINE\SOFTWARE\Zulu\Plug-Ins\MyPlugin\ProgID]
@="MyPluginProj.MyPlugin"

А если вместо <Layer> задавать <Map>, то пункт меню почему-то прописывается не в "Карта", а в "Карта"-"Группа".
Следующая проблема связана с тем, что не работает метод загрузки плагина LoadPlugin. Пример:

var
MyPlug: IPluginConnector;
begin
MyPlug := FConnector.Zulu.LocatePlugin('MyPluginProj2');
if VarIsNull(MyPlug) then
FConnector.Zulu.LoadPlugin('MyPluginProj2');
end;

Если это возможно, могли бы Вы сделать также метод выгрузки плагина?
 
1. Сегодня мы выложили обновление. MenuItem=<Layer>\Пункт меню теперь работает.
2. Вместо LoadPlugin используйте метод RunCommand( "MyPluginProj2.MyCommand");
Метод LoadPlugin был заведен, но остался заглушкой, т.к. загрузка плагина - это часть выполнения его команды.
3. UnloadPlugin можем добавить. Скорее всего, это будет не явная выгрузка плагина, а команда плагину, чтобы он завершил работу (т.к. нужно, чтобы плагин освободил ресурсы, закрыл окна и проч.)
 
Я хотел проконсультироваться по поводу вчерашней проблемы, касающейся задания внедряемого пункта меню. Я скачал обновления от 04.12.2006 г. Сделал необходимые записи в реестре. Теперь ситуация такая: при загрузке Zulu, в меню 'Слой' моего пункта меню нет. Но стоит 'погулять' по пунктам главного меню (например, 'Слой'-'Правка'-'Слой'-'Правка'-'Слой'-...), как в меню 'Слой'-'Операции' появляется мой пункт меню (причём, в нескольких экземплярах - в зависимости от того, сколько раз мы перемещались по пунктам главного меню). То, что внедряемый пункт меню появляется в 'Слой'-'Операции' - так должно быть? (Просто я думал, что он будет в меню 'Слой'.) И можно ли сделать так, чтобы пункты меню не дублировались? Подобная ситуация наблюдается при попытке задать свой пункт меню в меню 'Карта' (только пункт меню появляется в 'Карта'-'Группа', и там же дублируется).
И немного непонятно по поводу RunCommand('MyPluginProj2.MyCommand'). MyCommand - какую команду нужно использовать для загрузки плагина? Что-то не получается.
 
Этот эффект проявился потому, что у Вас в значениях указано "<Layer>\\&Мой плагин" вместо "<Layer>\&Мой плагин". Уберите лишний обратный слэш - заработает. Мы подправим, чтоб такого не возникало.
MyCommand - имя команды плагина, напр. у плагина MyPluginProj я вижу есть команда Open.
 
С меню теперь всё получилось. Спасибо! Возникли ещё вопросы. Есть ли возможность создать разделитель элементов меню (нужна возможность выделить свои пункты меню в отдельную группу)? И могли бы вы предусмотреть возможность блокировки пунктов меню (возможно, через реестр) - не только пользовательских, но и стандартных?
Загрузить плагин с помощью RunCommand не получилось. Команду Open я уже пробовал - она почему-то не работает.
 
Я ошибся, надо 'MyPlugin.Open' (формат такой '<имя_плагина>.<имя_команды>'). Имя плагина и имя команды - из реестра (это не имена проекта и метода).
 
Сейчас заработало. :) А то, что я спрашивал по поводу меню, реально сделать?
 
У нас после Нового года планируется новая оболочка, там тогда предусмотрим насильственное изменение состояния команд (тогда и на toolbar'ах они также будут заблокированы) и более гибкое внедрение меню.
 
Добрый день! Я хотел бы с вами посоветоваться. Написан плагин для Zulu (в Delphi 7). В нём есть кнопки, при нажатии на которые запускаются другие плагины. Время от времени, при запуске этих плагинов, появляются ошибки "DAX Error" ("Access violation at address..."). Сообщения об ошибках появляются не всегда. Вы не подскажете, в чём тут может быть дело?
 
Добрый день! Я хотел бы с вами посоветоваться. Написан плагин для Zulu (в Delphi 7). В нём есть кнопки, при нажатии на которые запускаются другие плагины. Время от времени, при запуске этих плагинов, появляются ошибки "DAX Error" ("Access violation at address..."). Сообщения об ошибках появляются не всегда. Вы не подскажете, в чём тут может быть дело?
 
Надо смотреть где именно произошла ошибка. Посмотрите в отладчике какая инструкция вызывает ошибку (буквально фрагмент кода), как мы раньше делали...
 
Ошибка DAX Error «Access violation at address 00DA3666 in module ‘HydroAddrPluginProj.ocx’. Read of address 00000000»

HydroAddrPluginProj – вызываемый плагин.

В «CALL STACK» (Thread 3588):
«Process is not accessible».

В «EVENT LOG»:
Thread Start: Thread ID: 3216. Process Zulu.exe (2248)
Module Load: HydroAddrPluginProj.ocx. No Debug Info. Base Address: $00DA0000. Process Zulu.exe (2248)

В окне CPU:
[$00000001]=???? Thread 3588

00DA0000 0800 or [eax], al
(EAX=00000001)
Страницы: Пред. 1 2 3 След.