RUS  ENG 

Некоторые проблемы.

Страницы: 1 2 След.
RSS
Некоторые проблемы.
 
public static MainForm form;
public static Zulu.IPluginConnector m_conn;
public static Zulu.IZulu m_app;
public static MapDoc;
public static IControlBar m_ControlBar;

public bool ConnectZuluPlugin(object conn)
{
try
{
m_conn = conn as Zulu.IPluginConnector;
m_app = m_conn.Zulu;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return true;
}
public void DisconnectZuluPlugin()
{
m_conn.Unlock();
m_app = null;
m_conn = null;
form = null;
m_mapdoc = null; // Объект документа зула
m_ControlBar = null; /// панель Ппоиска
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
}

public void OpenForm()
{
try
{
if (form == null)
{

Zulu.IDocument document;
document = m_app.ActiveDocument;
if (document != null && document.Type == eDocType.eMapDoc)
{
m_mapdoc = document.NativeDoc as ZuluLib.MapDoc;
form = new MainForm();
m_ControlBar = m_app.CreateControlBar("Поиск по улицам", (int)eControlBarStyle.barVisible | (int)eControlBarStyle.barDockable);
m_ControlBar.EmbedWindow(form.Handle.ToInt32());
m_ControlBar.SetMRUPosEntry("plugin:streetfind:form");
form.Show();
m_conn.Lock();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
1) проблема после закрытия формы не возможно открыть приложение заново пока Zulu не закрыть.
2) Когда помещаем форму в контрол бар а потом его перемещаем к другим. При попытке вытащить обратно Приложение вместе с ZULU зависают.
Что можете посоветовать?
 
Necrolog, рекомендую использовать UserControl и метод EmbedControl, чтобы вставить свой контент в плавающую панель. Использование Form в чужом процессе я бы ограничил лишь модальным режимом, иначе поведение непредсказуемо.
 
Спасибо.
А почему может не срабатывать первый пункт я проверил что больше не вызывается метод ConnectZuluPlugin повторно.
 
Не вохмоно сделать form модальным нельзя обратиться к самой ZUlu паралельно.
 
Цитата:
Спасибо.
А почему может не срабатывать первый пункт я проверил что больше не вызывается метод ConnectZuluPlugin повторно.

Навскидку нельзя сказать что-то конкретное, скорее всего потому, что плагин остается загруженным и повторно метод уже не вызывается. В принципе немодальная форма не должна "вклеиваться" в чужую облочку, т.к. ни дизайн обработчика очереди сообщений, ни препроцессора сообщений Вам как разработчику неизвестен. Старый Visual Basic вообще автоматически ругался при попытке создать немодальную форму не из программы на бейсике. Тоже и VBA, который определял, что обработчик оконных сообщений совместим с VBA.
 
Цитата:
Не вохмоно сделать form модальным нельзя обратиться к самой ZUlu паралельно.
Разумеется. Поэтому я и писал, что для вклейки Form не годится - только для всплывающих модальных диалогов.
 
private void CreateTable(int idBase)
{

string Base = ZuConnect.m_mapdoc.Layers.Active.Bases.get_ItemById(idBase).Name;
string [] Names = {"sys","type","mode","typename","modename"};
int [] Types = {3,3,3,1,1};
int [] Sizes = {0,0,0,30,30};
ZbDatabase zb = new ZbDatabase();
if (zb.Open(Base))
{
if(!zb.CreateTable(TableResult, Names, Types, Sizes, 1));
{
ZuConnect.MessagetoControlBar("CreateDatabase() " + zb.LastErrorString );
}
}
zb.Save(1);
ZuConnect.m_mapdoc.Save();
zb.Close(true);

}

Не создает таблицу хотя LastError = 0
 
Necrolog, проверили на тестовом коде:
{
string Base = "D:\Test\Test.zb";
string TableResult = "D:\Test\Test.db";

string [] Names = {"sys","type","mode","typename","modename"};
int [] Types = {3,3,3,1,1};
int [] Sizes = {0,0,0,30,30};
ZbDatabase zb = new ZbDatabase();
if (zb.Open(Base))
{
if(!zb.CreateTable(TableResult, Names, Types, Sizes, 1))
{
}
}
zb.Save(1);
zb.Close(true);
}

Прекрасно все создается.
 
https://gyazo.com/f29d4e22357c0a3f851bb581af7d3794
Есть ли где-то метод чтобы можно было взять символ и отрисовать символ в своей приложени??
 
http://www.politerm.com/zuludoc/zuluax/Symbol_Picture.htm
http://www.politerm.com/zuludoc/zuluax/Symbol_Draw.htm
 
Спасибо.
Вот как не пытаюсь обратиться к базе MSACCES скопированной из другого слоя через ZuluServer ошибки.
https://gyazo.com/2cfafe6dcd0ecdbf5ee55da53c50c70c
https://gyazo.com/6b148a3456bb21c67a0f298ab61b7459
Через окно запросов выбрав не локалскл а выбираеш базу данных Акцесс работает запрос.
Как правильно то обращаться с Акцессом? Спасибо.

Еще я так понимаю бесполезно когда используеш зулу сервер определять тип источника. Что ODBC Что ADO что acess что парадокс почему-то всегда сорстип 0 а сервис 3 неизвестный.
https://gyazo.com/764b5baf83edbab60da9625b9065b683
 
Короче и строку не объект созданный зарание зулу серверу не стоит давать.

только вижу выход узнать заранее индекс и уже в открытой субд вставить в запрос zb.Sources[this.zsi] с правильным индексом.. Так работает.
 
Цитата:
Короче и строку не объект созданный зарание зулу серверу не стоит давать.

только вижу выход узнать заранее индекс и уже в открытой субд вставить в запрос zb.Sources[this.zsi] с правильным индексом.. Так работает.

Necrolog, у Вас проблема в коде.
Судя по фрагменту, Вы создаете объект ZbDatabase, открываете базу данных, а потом в метод OpenSQL передаете некий объект zbBDEsource, который никак не связан с этой базой данных, в коллекцию соединений не входящий. Параметр Source этого метода должен идентифицировать соединение ВХОДЯЩУЮ в базу данных, которое будет использовано для вызова.
 
https://gyazo.com/ec919bb6fbb3c5a2938beb300f05f528

Ну вот какого формата дата должна быть чтобы акцесс понял я уже американский пробывал ошибка и все
 
https://gyazo.com/212bdf882b859bfefd34f00fb538cccc
Вот ответ
 
Necrolog, использование констант для даты/времени в тексте запроса очень ненадежно. Все эти ошибки выдает Access и мы ничего с этим не может поделать. Даже если подобрать текст даты, потом, при других региональных настройках, опять не сработает. В случае с тестовым запросом это понятно, там параметры негде указать, но потом, протестировав, в коде лучше использовать запрос с параметрами и дату передавать в параметре в бинарном виде. Если весь код заточен только под Microsoft Access, то да, можно выйти из положения, используя Format.
 
https://www.politerm.com/zuludoc/zuluax/Layer_IntersectByLayer.htm

Поправьте пожалуйста докуменатцию
CrossType - ID типа объектов исходного слоя, участвующих в анализе:

-1 - все объекты;
-2 - только площадные; (повтор где линейные?)
-3 - только площадные; (повтор где линейные?)
-4 - только символьные;
-5 - только текстовые;
-6 - все типизированные;
 
Спасибо. Поправили.
 
Подскажите быстрый способ нарисовать контур круга (не элипса) с центром в XY и радиусом N и добавить как эелемент.
Только создать новый символ ?
 
Можно создать полигон, приближенный к окружности и записать его в слой:

http://www.politerm.com/zuludoc/zuluax/ZGeometry_BufferZone.htm
 
Попробывал не подошло. Хорошо а как получаются эти окружности ?
http://joxi.ru/YmEyqZBTWpGBm6
 
Что именно не подошло? Строятся точки окружности с заданным центром и заданным угловым шагом.
 
http://joxi.ru/KAgYEnaIJogvml получается вот такой полупрозрачный скругленный квадрат ) Может я не так что делаю.
square.AddPolyContour(zg.BufferZone(elms.PolyContour, elmlengthout, 0, 91), eStyle,-1,-1);
 
http://joxi.ru/LmGy7RBTLMe7Al А вот так на ура ) сам запутался спасибо.
square.AddPolyContour(zg.BufferZone(elms.GetCenter(), elmlengthout, 0, 91), eStyle,-1,-1);
 
Подскажите есть ли возможность получить права пользователя на ZuluServer или хотябы группу куда входит.
Можно пример если такая вохзможность есть
Страницы: 1 2 След.