Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.22.51.241] |
|
Страницы: (10) « Первая ... 8 9 [10] все ( Перейти к последнему сообщению ) |
Сообщ.
#136
,
|
|
|
У меня C++ Builder 6 SP4
Прилагаю в архиве файл ..\Borland\CBuilder6\include\vcl\utilcls.h и постоянную ошибку возникающую в Builder: При вводе 4274получаю: _ASSERTE(IsBound() /* Must be bound to perform Invoke() */); Прикреплённый файлutilcls.zip (29.15 Кбайт, скачиваний: 127) |
Сообщ.
#137
,
|
|
|
Отдельно взятый кусок программы в отрыве от остального может вести себя как угодно. Надо сравнивать полностью проекты, делающие одно и то же.
Анализ не производится по принципу "Вырежем произвольный кусок и посмотрим, что получится" |
Сообщ.
#138
,
|
|
|
Чтобы выявить ошибку, я создала новый проект: кнопка, один слой, с одним и тем же кодом. Один в Делфи, другой в Builder. Код выше приводился пользователем Rosty. В Делфи код работает в Builder нет
Пользователь MAX2002, который работал с MapX, тоже во время дискуссии говорил, что это у Builder-а проблема... Все таки надеюсь на хорошую декабрьскую версию |
Сообщ.
#139
,
|
|
|
Trailer >
Отдельно взятый кусок программы в отрыве от остального может вести себя как угодно. Надо сравнивать полностью проекты, делающие одно и то же. Анализ не производится по принципу "Вырежем произвольный кусок и посмотрим, что получится" Могу выставить полный проект, но мне непонятно, как можно проверить работу программы, которая в основном состоит из одного ActiveX, если этот ActiveX не установлен на компьютере? Ты просил исходный код и DFM в текстовом виде. И я выложил ВЕСЬ код. Я бы выложил и весь проект, но нет кнопки подключения файла. Видимо для этого, нужно бы зарегистрироваться. Trailer > Я не спрашивал, какие могут быть особенности у компиляторов. У меня достаточно большой опыт работы с разнообразными компиляторами. Я спрашивал, какие особенности компилятора Borland C++ 5.5.x или 5.6.x препятствуют правильной работе MapX. Попробую объяснить третий раз. Каждый компилятор, точнее ее lib файлы содержат баги. Не является исключением и CBuilder. Ссылки на такие найденные баги я приводил. Из за какого-то Builder-овского бага не работает Find с установленными значениями FindDataSet, FindField. Ты утверждаешь, что MapX должен работать на все 100 с Builder. Но ты только слышал об этом компоненте. Его можно скачать с сайта mapinfo.com. Хочешь продолжить спор, скачай, посмотри что это. Я знаю mapX и не хочу спорить с человеком, который только слышал о нем. И который в свою правоту может только привести, что хорошо знает ActiveX и имеет большой опыт работы с компиляторами Builder. |
Сообщ.
#140
,
|
|
|
Lena >
В старом приложении, найденная улица не только увеличивалась зумом на карте, но и становилась жирной и красилась в красный цвет Один из способов это сделать: if(FoundObj->FindRC % 10 == 1) { Form1->Map1->Zoom = 2; Form1->Map1->CenterX = FoundObj->get_CenterX(); Form1->Map1->CenterY = FoundObj->get_CenterY(); double x = FoundObj->LabelPoint->get_X(); double y = FoundObj->LabelPoint->get_Y(); int n = lyr->Labels->Count; for(int i = 1; i<=n; i++) { CMapXLabel *lbl = lyr->Labels->_Item(OleVariant(i)); if(lbl->AnchorX==x&&lbl->AnchorY==y) { lbl->Style->TextFontColor = RGB(128,0,0); UINT nArgErr = (UINT)-1; DISPPARAMS dispparams; VARIANTARG va; dispparams.rgvarg = &va; dispparams.rgvarg[0].vt = VT_BOOL; dispparams.rgvarg[0].boolVal = TRUE; dispparams.cArgs = 1; dispparams.cNamedArgs = 0; lbl->Style->TextFont->Invoke(DISPID_FONT_BOLD, IID_NULL, 0, DISPATCH_PROPERTYPUT, &dispparams, NULL, NULL, &nArgErr); break; } } Но есть один минус, перебираются все метки, а таких меток на карте может быть несколько сот. Я не вижу такого свойства у CMapXFindFeature, с помощью которой можно бы от нее за один шаг, перейти к соответствующей метке. Но есть идея. В понедельник проверю, и если работает, тогда спроектирую класс и отправлю. |
Сообщ.
#141
,
|
|
|
Цитата Rosty @ Мне за решение проблем некоего Rosty не платят. Чтобы я еще что-то для этого качал. Хочешь продолжить спор, скачай, посмотри что это |
Сообщ.
#142
,
|
|
|
Trainer > Мне за решение проблем некоего Rosty не платят.
Чтобы я еще что-то для этого качал. Уважаемый, нет у меня таких проблем, которых ты мог бы решить. Прочитал твой ответ на вопрос заданный "ТЕМ КТО РАБОТАЛ С МapX5", типа: Search метод должен работать в Buildere при установленных значениях FindDataSet/FindField. И если он не работает то только потому, что у кодера руки кривые. Я подумал, мало того, что кадер трындит о том, что не знает, да еще поучивает человека, который в MapX разбирается несравненно лучше чем он. И решил вывести это кадра на чистую воду. imho мне это получилось. Вместо конкретного ответа, сперва у тебя туфли были маленькие(нет MapX), потом штаны давили (на той строке ничего нет), потом пол был кривой(нельзя вырывать куски кода из проекта). Теперь ....(тебе не платят). P.S. Что, приведенный мной анекдот о мостах Будапешта, тебе не понравился, что ты его дважды удалил? |
Сообщ.
#143
,
|
|
|
Rosty
Заканчивай, ты себя не очень корректно ведешь. К тому же trainer прав, если нужно, то можно заставить работать MapX и с Builder'ом. На вскидку, можно написать dll-ку на Delphi и ее юзать из Builder'а. Есть и более сложные способы, но при желании все возможно. В конце концов, можно все вообще руками сделать (я имею в виду работу с ActiveX). Так что хватит наездов и несмешных анекдотов, я не думаю, что кому-нибудь это интересно читать. |
Сообщ.
#144
,
|
|
|
Artalex, я вел себя довольно корректно. Обещал код. Код выложил так,
как просили. Даже не ждал выходных. И даже указал один из возможных способов решения проблемы. (IsBound() дает false, но есть еще ф-ия Bound()) Ожидал ответа типа 1: "Смотри ламер, это делается так и так". Моим ответом, был бы, "Спасибо, ты монстр (в положительном смысле) и я действительно ламер, но буду стараться" Тип 2: "Да, код не работает. Borland здесь что-то явно нахимичил". Мой ответ: "Бывает". И ответ, которого я бы дал в данном случае, будучи на месте Trainer. "Смотри, хоть я с тобой не согласен, но у меня нет времени разобраться в этом вопросе, по-этому, пусть будет так, как ты говоришь, и я был неправ на счет того, что XY не разобрался(ась) в MapX." Все. Это альфа и омега, когда общаются два спеца. Вместо этого: и то не то и то не так, и договорились до "у меня нет дел до проблем некого Rosty". И лично мне не нравится, если мои ответы удаляют. Типа барин(moder) делает что хочет. Потом, вопрос не в том, что работает ли MapX с Builder-ом. Он работает и довольно неплохо. Но метод Search, при установленных значениях FindDataset/FindField дает сбой. Trainer утверждает, что если разобраться, тогда можно заставить Search работать. Я попросил его показать, как это делать. Если б он это сделал, я был бы ему благодарен. Теперь Ты утверждаешь, что MapX и Builder лучшие друзя. Судя по Твоему ответу, делаю вывод, что, конечно и на твоем компе этот компонент не установлен. И этого компонента Ты тоже в глаза не видел. Для того, чтоб находить любой объект не нужна dll-ка, это через голову. Есть другой способ. Более элегантный и более эффективный. На счет несмешного анекдота, Ты не прав. То что я привел, описывает одну из основных свойств или сторон программирования. Если программа правильно написана, тогда она будет работать на компе, даже если эту программу писал пастух. Но если она не правильна, тогда она не будет работать, даже если солнышко по вечерам стучит в окно автора программы и спрашивает: Trainer, а завтра во сколько? И с востока или с запада. |
Сообщ.
#145
,
|
|
|
Лена, это снова я.
Не факт, что MapX будет совместим с очередной версией Билдера. Судя по твоей переписке с Синди, их это мало волнует. Пишут они свои примочки на VBA, у дяди Билли к ним претензий нет, остальное побоку. Поэтому не жди до декабря. Проблему можно можно решить радикально (не падай в обморок, у меня два раза был выбор - либо я делаю работу, либо пишу заявление) - установи Дельфи и к декабрю (а скорее всего - намного раньше) у тебя все получится. Сорри за лирику, но мне пришлось в пожарном порядке переходить с AutoLISP на Watcom C\C++ 10, а еще через три года - с Ваткома на Билдер. Не думаю, что переход Дельфи-Билдер окажется сложнее. Всем остальным - ребята, давайте жить дружно! Эмоции есть у всех, иногда прорывает - и не надо воспринимать это, как оскорбление. Честно говоря, trainer мог бы давно плюнуть на этот топик - но тем не менее пытается если не дать решение, то хотя бы приблизиться к истине (я не подлизываюсь, это мое мнение о нем и не только по этому топику). ЗЫ. if (FoundObj->FindRC % 10 == 1) { // ... } Всегда считал, что всякие Фаунды должны возвращать либо true/false, либо 1/0, либо addr/NULL. Но чтоб вот так |
Сообщ.
#146
,
|
|
|
Rosty
Цитата Теперь Ты утверждаешь, что MapX и Builder лучшие друзя. Ткни пальцем где я говорил это. Цитата Судя по Твоему ответу, делаю вывод, что, конечно и на твоем компе этот компонент не установлен. Не установлен, и я не считаю себя из-за этого ущербным. Цитата Для того, чтоб находить любой объект не нужна dll-ка, это через голову. Есть другой способ. Более элегантный и более эффективный. Я же написал, что это "на вскидку". Я, как и trainer, просто не хочу себе забивать голову этой проблемой. Но то, что решение этой проблемы существует - это 100%. Можешь считать меня самоуверенным, если честно, то мне пофиг. Цитата Если программа правильно написана, тогда она будет работать на компе, даже если эту программу писал пастух. trainer об этом же и говорил. Может хватит, а ? Я бы предложил тебе в приват перейти, но ты же не зарегистрирован. Эту тему я больше засорять не буду. Если есть желание, то можем по e-mail продолжить обсуждение этого вопроса. |
Сообщ.
#147
,
|
|
|
Rosty, открой личико!
|
Сообщ.
#148
,
|
|
|
По порядку:
Цитата Rosty @ Как мне кажется, программирование - точная наука и в привлечении для объяснения чьих-то проблем магии и прочих потусторонних сил не нуждается. Есть два варианта:Тип 2: "Да, код не работает. Borland здесь что-то явно нахимичил". 1) Источник проблем обнаружен и объяснен(здесь возникает ошибка потому, что...); 2) Источник проблем не обнаружен(магия, чертовщина, "здесь что-то явно нахимичил" и т.д. и т.п.). ASSERTE - это следствие, а не причина. Цитата Rosty @ Именно так. Если у меня возникнет подобная проблема - я ее решу. Решать проблемы других я не обязан.и договорились до "у меня нет дел до проблем некого Rosty". Цитата Rosty @ Для анекдотов есть раздел "Юмор". И лично мне не нравится, если мои ответы удаляют. |