Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
КТо-нибудь работал с TMS AdvChartView? |
Философия, технологии, алгоритмы! |
|
Опции темы |
11.09.2013, 19:31 | #1 | |||
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 43
Не в сети |
КТо-нибудь работал с TMS AdvChartView?
Есть прикольная штука - http://www.tmssoftware.com/site/advchart.asp
Скачал, поставил, стал разбираться. Дошел до построения графика. Примеры прилагались, но они на Delphi. В дельфи примере есть такая строка: Цитата:
Пишет что Series не является членом Panes, а функция AddSInglePoint неизвестна. Интерактивные средства билдера дали понять, что доступ к Series и далее по тексту может быть осуществлен следующим образом: Цитата:
А в дельфи примере все нормально.... Может быть кто подскажет для начала, как перевести на C строку Цитата:
Последний раз редактировалось -=Женек=-; 11.09.2013 в 20:09. |
|||
11.09.2013, 20:25 | #3 | |||
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 43
Не в сети |
Hopkroft,
Цитата:
Цитата:
Цитата:
|
|||
11.09.2013, 21:02 | #5 | |
Registered User
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56
Не в сети |
Цитата:
Я уже серии вручную добавлял, что-то результата пока нету. Если получиться - отпишусь. |
|
11.09.2013, 21:52 | #7 |
Форумец
Сообщений: 39,870
Регистрация: 27.05.2003
Возраст: 46
Не в сети |
а зачем ты пытаешься работать под С++ Builder, а не в Delphi, если С++ ты, похоже, не знаешь совсем.
я не о том что ты не сообразил сам что используются указатели, а о том что сообщение об ошибке более чем явно дает понять что надо делать, чтобы её исправить. |
12.09.2013, 05:40 | #9 | |
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 43
Не в сети |
Цитата:
Не мог бы ты изложить свою мысль на языке С++, то есть привести правильное на твой взгляд написание этой строки. Последний раз редактировалось -=Женек=-; 12.09.2013 в 05:56. |
|
12.09.2013, 09:16 | #10 | |
Registered User
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56
Не в сети |
Цитата:
+100500. Но как написал выше, для домашних поделок пойтёт. Хотя в последних версиях вроде как добавили поддержку С++11, поддержку 64-х разрядной архитектуры и другие свистелки-перделки. |
|
12.09.2013, 09:34 | #11 |
Registered User
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56
Не в сети |
-=Женек=-, так что по поводу TeeChart скажешь? Он достаточно навороченный, можно и его для графиков использовать. И вроде как стандарт для вывода графиков в различных бизнес приложениях. Плюс для него примеров много на C++.
Могу дать ссылку на ломаную версию. Последний раз редактировалось Hopkroft; 12.09.2013 в 09:58. |
12.09.2013, 09:49 | #12 |
Форумец
Сообщений: 231
Регистрация: 26.02.2007
Не в сети |
Автор просил не флудить в теме, поэтому постараюсь ограничиться только лишь одним ответом
Оставлю это здесь: Qt SDK Qt Creator Qt Designer А уж библиотек для "стандартного" С++ и Qt в частности не пересчитать. И оно бесплатно даже для коммерческого использования, и не нужно ничего ломать и идти на компромисы с совестью Все же 2013 год на носу. Builder имеет смысл пока пользуешся VCL, а VCL к С++ имеет весьма сомнительное отношение. Другими словами, пользователи Builder пишут на VCL а не на С++ описанном в стандарте, поэтому, что добавили они С++11 что нет, имхо, для пользователей Builder это практически ничего не меняет |
12.09.2013, 10:06 | #13 | |
Форумец
Сообщений: 39,870
Регистрация: 27.05.2003
Возраст: 46
Не в сети |
Цитата:
тебе посоветую научиться вот чему - пользоваться кнопкой F1, если с компонентом поставляется адекватная документация, или смотреть в хедерах (заголовочных H / HPP файлах) ТИПЫ ПЕРЕМЕННЫХ, с которыми ты работаешь (члены класса или нет - это не суть важно в данном случае). Ты должен, обязан осознавать - ЧТО ТЫ ДЕЛАЕШЬ. и должен понимать какого типа КАЖДЫЙ член вот в этой строке AdvGDIPChartView1->Panes[0]->Series[0]->AddSinglePoint(RandomRange(0, 50)); иначе в лучшем случае будешь продолжать мучиться с компиляцией, в худшем - писать говнокод, который в Builder'е рождается просто замечательно и при достижении критической массы превращает программу в аццкое глюкало, которое можно только выкинуть. |
|
12.09.2013, 10:11 | #14 | |
Registered User
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56
Не в сети |
Цитата:
Я уже пробовал, удалять и вручную добавлять свои Panes и Series через конструктор. Один фиг не работает. Может где-нибудь нужно какую-то галку поставить, но обычно такие компоненты работают из "коробки" на ура. |
|
12.09.2013, 10:15 | #15 | |
Форумец
Сообщений: 39,870
Регистрация: 27.05.2003
Возраст: 46
Не в сети |
Цитата:
это твой вариант. ты должен понять, где надо заменить -> на . пользуясь документацией и / или заголовочными файлами. адекватный C/C++ программист должен уметь не задумываясь пользоваться и тем и другим способом. |
|
12.09.2013, 10:49 | #16 | |
Registered User
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56
Не в сети |
Цитата:
Я конечно могу ошибаться, поэтому приложил hpp файл. Можешь подсказать по hpp файлу? |
|
12.09.2013, 11:15 | #17 | ||||
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 43
Не в сети |
Spectator,
Цитата:
Уважаемый! Ты грамотный программист, это чувствуется. Но когда же ты научишься читать посты и вникать в их суть, вместо того чтобы писать фразы типа "ты дурак, а как правильно делать я тебе не скажу." ? Цитата:
Дальше, читаем пост №1 Цитата:
А к этому Цитата:
А сама тема - я даже в заголовке указывал не саму проблему, а интересовался - есть ли люди, которые работали с этим VCL. Работали, значит тоже сталкивались с этой проблемой и как-то ее решали. Описанный в последней цитате вариант не просто компилируется, но и не конфликтует со структурами, так как уже в ходе работы программы никаких ошибок, свидетельствуюищих об обращении к несуществующим элементам, не выдается. График просто не рисуется. Что ж... вернусь домой попробую писать в элементы структур, а потом читать из них, может проблема чисто с отображением. Хотя я и свой компонент кидал на форму, и копировал из рабочей формы из примера для дельфи - результат один. |
||||
12.09.2013, 11:21 | #18 | |
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 43
Не в сети |
А ведь я оказался прав!
Пришло письмо от разработчика: Цитата:
Может объявится билдерист, который с этим работал... |
|
12.09.2013, 11:26 | #19 | |
Registered User
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56
Не в сети |
Цитата:
А что тебе нужно сделать? Я скачал pdf с мануалами, там вроде всё норм расписано. я так понял ты использовал вначале AdvGDIPChartView1, т.к. хотел алиасинги и прочую красоту, а то в итоге хочешь получить? |
|
12.09.2013, 11:48 | #20 | |
Форумец
Сообщений: 39,870
Регистрация: 27.05.2003
Возраст: 46
Не в сети |
Цитата:
теперь смотри. если ты обращаешься к Panes, то, в соответствии с определением, надо использовать -> НО, ты обращаешься не к Panes, а к элементам массива, на который ссылается Panes, следственно это будет уже [B].[B] Panes[4].blahBlahBlah операции -> и [] взаимоисключающие, как бы. вот если бы там было ДВЕ *, то одна бы ушла [], а другая - в -> как правильно писать в Билдере проверяется, на самом деле, очень просто и не используя головной мозг - пишем ->, если Code Insight не срабатывает и список членов класса не вываливается, значит нужна точка. в частности, для перевода примера с Дельфей надо скопировать текст примера в код программы, закомментарить, а потом заново набрать руками, обращая внимание на то - срабатывает ли Code Insight на точки или на -> если не научиться делать упомянутое выше на интуитивном уровне, работа со сторонними компонентами, портированными из дельфей, превратится в кромешный ад, так что настоятельно рекомендую разобраться. |
|
12.09.2013, 12:04 | #22 | ||
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 43
Не в сети |
Hopkroft,
Цитата:
Цитата:
То есть уже ясно, что мануал хоть и содержит много полезной информации, но может сбить с толку. |
||
12.09.2013, 12:19 | #23 | |
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 43
Не в сети |
Spectator,
Цитата:
|
|
12.09.2013, 12:19 | #24 |
Registered User
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56
Не в сети |
-=Женек=-, да там просто можно подсмотреть как какой эффект сделать и в какой последовательности что вызывать.
Остальное можно додумать. Там основная фишка в том что обращаются либо к Series либо к Panes. А т.к. теперь известно что к ним через Items нужно обращаться, поэтому должно проще пойти. |
12.09.2013, 12:32 | #25 | ||
Форумец
Сообщений: 39,870
Регистрация: 27.05.2003
Возраст: 46
Не в сети |
Цитата:
если точка срабатывает, пробуй откомпилироваться с ней. если ТОЧНО с точкой не выходит, тогда уже пробуем -> это, конечно, танцы с бубном, но программирование в Builder - это в принципе танцы с бубном, так что карму мы этим не испортим, а на практике такая метода сильно облегчает жизнь при привинчивании криво портированных из дельфей библиотек. а вот Цитата:
|
||
12.09.2013, 12:47 | #27 | |
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 43
Не в сети |
Spectator,
Цитата:
|
|
12.09.2013, 12:48 | #28 |
Registered User
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56
Не в сети |
-=Женек=-, если работает без них, то не значит что не нужно их выкидывать.
С их помощью ты предотвращаешь перерисовку компонента во время большого количества изменений. В противном случае либо тормозить начнёт либо мерцать будет. Так что мануал лучше читать! |
12.09.2013, 13:37 | #29 | |
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 43
Не в сети |
Цитата:
Да и потом, что значит выкидывать? По-моему в дельфевом примере вообще не было этих функций. Ну или они запускались где-то по какому-то другому событию. В общем, приду домой, попробую. |
|
12.09.2013, 16:24 | #30 | |
///
Сообщений: 9,724
Регистрация: 02.04.2005
Возраст: 43
Не в сети |
Hopkroft,
Цитата:
А так попробовал - наконец-то все заработало. Всем спасибо))) |
|