RUS  ENG 

Проблема с StdPicture, ...

Страницы: 1
RSS
Проблема с StdPicture, ...
 
Здравствуйте, есть проблема с использованием StdPicture,
не могу использовать в Builder6,
также есть проблема с отображением надписей на карте с использованием БД Oracle,
в смысле данные для надписей берутся из Oracle,
возможно эти проблемы решатся с обновлением, у меня сейчас релиз 1896
 
Вы напишите, в чем именно проблема.
На сайте сейчас версия 2295. 1896 - это больше года назад. В любом случае скачать обновление нужно.
 
Так, проблема с Oracle решилась обновлением, но с StdPicture нет,
проблема в следующем:

StdPicture *pict; << StdPicture отсутствует, я использую Builder6
pict-> =*sym-> get_Picture();

Также есть проблема:

MapCtrl1->Browser = ZbStdBrowser1->Browser

Я думаю она вам знакома, был на форуме, там есть сообщение по этому вопросу, но решить теми средствами не удалось
 
Посмотрите в импортированном юните ZuluLib_TLB что возвращает метод get_Picture. В 5-м Билдере это IPictureDispPtr, что-то подобное должно быть и в 6-м, а не StdPicture. Свойство Picture само имеет тип IPictureDisp*.
Если созданный Билдером класс TMapCtrl (или TZbStdBrowser) не имеет свойства Browser(не опубликовано оно), то должны быть методы get_Browser/set_Browser. Используйте тогда их.
 
MapCtrl1->set_Browser(ZbStdBrowser1->Browser);

юзаю не катит, ругается

также и с Picture
 
Сообщите поконкретней, какие именно сообщения выдает компилятор.
 
[C++ Error] Unit1.cpp(28): E2247 '_fastcall TMapCtrl::set_Browser(IUnknown *)' is not accessible
 
Это значит, что при импорте Билдер (6-й) запретил использование этого метода непосредственно у класса TMapCtrl. Отчего он это делает - можно только узнать у разработчиков Билдера (в 5-м Билдере проблем нет, в 7-м Дельфи тоже). Возможно просто придется вызывать метод не у класса-оболочки TMapCtrl, а у интерфейса _DMapCtl, который реализует этот контрол. Пришлите, пожалуйста, файлы ZuluLib_TLB, ZuluLib_OCX, ZuluOcx_TLB, ZuluOcx_OCX (.h и .сpp) на [email protected], посмотрим как можно это обойти.
P.S. Вы не сообщили, что именно выдает компилятор на свойство Picture и как именно выглядит Ваша строка кода с ним.
 
На мыло вам скинул, а насчет Picture, как работать с IPictureDisp
Symbol *sym;
IPictureDisp *pict;
pict = sym->get_Picture();
нет доступа к методам, в частности нужны Height,Width
 
На мыло вам скинул, а насчет Picture, как работать с IPictureDisp
Symbol *sym;
IPictureDisp *pict;
pict = sym->get_Picture();
нет доступа к свойствам, в частности нужны Height,Width
 
Из присланных Вами файлов ясно, что метод set_Browser у билдеровского класса-оболочки TMapCtrl объявлен в private области, но при этом есть published свойство Browser. Используйте его. (т.е. можно так: MapCtrl1->Browser = что-то).

Про IPictureDisp: Дело в том, что IPictureDisp - это dispatch-интерфейс (об этом говорит суффикс Disp). Напрямую, по-сишному написать pict->Height конечно нельзя. Его можно использовать именно как dispatch-интерфейс (см. описание IPictureDisp в OLE Programmer's Reference). Кроме того, есть еще вариант: можно запросить у pict другой интерфейс IPicture и пользоваться его методами get_Width и get_Height.
 
Douser,

>>Из присланных Вами файлов ясно, что метод set_Browser у билдеровского класса-оболочки TMapCtrl объявлен >>в private области, но при этом есть published свойство Browser. Используйте его. (т.е. можно так: >>MapCtrl1->Browser = что-то).

см. выше
 
Что именно "см." ? Пишите по-конкретней...
Страницы: 1