Давно пишу такой же активикс, да все не допишу.
Василий, развивать дальше будешь?
Если нет, буду дописывать свой, если да, попробую твой. ;))
GDI+ действительно используешь или название прихватизировал просто?
(11) Т.е ты хочешь сказать, что если я добавлю в Miracle рисование прямо но форме отчета - это будет зашибись? Там добавить - даже проще чем два байта остослать...
(11)
Насчет голубой мечты в ПВХ:
с графикой в 1С8 прекрасно справляется VML (граф. язык встроенный в IE и заодно в соотв. объект 1С). На одной фирме (ООО "Промаокна" в Москве, если кому интересно) я так и реализовывал расчет изделий ПВХ. Всё элементарно и безо всяких доп. ухищрений типа активикс. Довольно небольшой код позволял интерактивно рисовать (визуально результат выглядел не хуже чем в специализированных ппрограммах) и обсчитывать как прямоугольные конструкции, так и арочные, треугольные и т.п. Единственно ОЧЕНЬ сильно пришлось вспоминать математику с её синусами и косинусами.
(28)(37) Насчет рисования изделий ПВХ.
На самом деле особая графическая мощь тут не нужна.
При массовом производстве 99% изделий состоят из простых элементов - рама, створки, импосты.
Я пошел таким путем.
При использовании моего активикса рисование створки, например, выглядит примерно так: ЗакуячитьСтворкуЛевуюПоворотноОткидную(Ширина,Высота). Вся математика зашита в активиксе.
На форме при помощи FormEx динамически создается нужное число контейнеров для активикса. Каждый экземпляр это ПВХ-примитив (рама, створка и т.д.). И из них собирается изделие.
Изменение размеров/положения (опять-таки при помощи FormEx) делается мышей (или вводом размера).
На экране изделие отображается с пропорциональными размерами, что важно для понимания, как будет выглядеть готовое изделие.
Таким образом, в документе я храню только вид и координаты ПВХ-примитивов.
При открытии формы документа, картинка рисуется заново.
Чем не векторная графика? ;))
Так что использовать компоненту Василия пока погожу.
Все равно большое спасибо ему, натолкнул на некоторые мысли :))
(38) в том то и дело, что считать нестандарт ПВХ (арки, трапеции и т.п.) на примитивах никак нельзя. И они точно составляют больше 1% при массовом производстве (если конечно не сидеть на заказах новостроек) - заказчик ныне пошёл привиредливый. Так что векторная графика в 1С нужна и автор пусть дальше развивает контрол.
(40) ну смотря какого размера фирма и требования к персоналу расчитывающему изделия. На той фирме где я работал изделия расчитывали менеджеры (не конструктора) и результат расчета они должны были сказать сразу вне зависимости от сложности. Научить даже одного менеджера правильно расчитать нестандарт - утопия. А их на фирме было 50 человек в офисе + куча в регионах и на точках по всей Москве.
Рисовать действительно бывает нужно, поэтому +.
(11)(28) Я тоже сталкивался с этой проблемой в ПВХ (производство окон), тогда я пошел через использование PHP. Программно по заданным пользователям установкам генерился скрипт, выполнялся и в 1с возвращалась картинка. Жалко у меня тогда не было этой компоненты, жизнь была бы легче.
(36) vladsol, а ты бы поиском по сайту воспользовался. У меня уж год подобная штука лежит (правда не моя), только у Душелова она выполнена в виде ActiveX-контрола, что конечно же удобно, но до функционала Gflax не дотягивает. Конечно Дужелов и не будет дотягивать контрол до gflax, он просто скорее всего сделает тот функционал которого там нету - например векторные сплайны, анимацию, градиенты. Ну а в случае с ПВХ хватило бы и Gflax, по крайней мере с PHP бы не извращался.
тут в цикле изменяется только "X". В результате появляется ругатня на функцию "ЗаполнитьМногоугольник", типо исключительная ситуация, Parameter is not valid.
Такое впечатление что функция ЗаполнитьМногоугольник может вызываться ограниченное количество раз
общая идея: справочник картинок, оттуда выбираем ее и таскаем по форме
а потом сохраняем все это или в файл конфигураций,или в подчиненные справочники(в зависимости от необходимой реализации)
(0) Василий, (просто не успел качнуть еще, не пробовал) а для игр динамических как, пойдет? Я ж думаю когда-нибудь сделать прохождение лабиринтов с трехмерным видом изнутри ( я про это http://infostart.ru/projects/3474/ ). Просто эта http://infostart.ru/projects/1747/ мне немного не подошла, т.к. обновлять целиком надо файл, а потом его заново отображать, или я не доразобрался с ней... Как думаешь?
Да! и чтобы еще к графическому примитиву можно было привязывать некий "описатель" 1Совский - типа "Расшифровки" - а туда уже можно запихнуть какой-хочешь 1Совский объект - хоть СЗ, хоть ТЗ, хоть описательную строку... - вот такая у мну хотелка
Отличная разработка! Просто жесть!!! Автору большой плюс и признание!
Но к сожаленью так и не смог ничего нарисовать в семёрке, так как нет реального живого примера например элементарной обработки или отчётика, где реализован весь етот шедевр!!!
У меня к примеру(42) выдаёт ошибку: "Неудачная попытка создания объекта (АктивИкс)"
Напишите пожалуйста например обрабоку с кодом построения точки, линии на форме!
А вообще огромное человеческое спасибо!!!
(48) Спасибо ЁПРСТ! Забыл ЗагрузитьВнешнююКомпоненту, но после загрузки проблема не исчезла снова новая ошибка: "Неверный идентификатор атрибута"
Ребята кто-нить может выложить пример.ert, чтоб было наглядно понятно как и что? Заранее огромное пасибо!!!
Знатная штука! С разрешения автора попользуюсь немного. Вот если бы кто-нибуть подсказал как такое написать :)) с добавлением Drag&Drop... или может ссылочку какую-нибуть полезную кинул... то с меня пиво!
(53) Надо пользователюкартинки по форме перетаскивать, а мне - отслеживать, и при масштабировании, смене ориентации страницы и т.д. учитывать. А как пока не пойму...
(55) "[VectorDrawing] - Векторная графика в 1С"? Смотрел, можно было бы использовать, есть перетаскивание, можно сделать масштабирование, группировку - все замечательно, но пункт контекстного меню "О компоненте" не дает мне возможности ее использовать в своих разработках. Что, по моему, вполне естественно. По этому хотелось бы все-таки самому попробовать разобраться и написать собственную ВК. Кроме того, все-таки хочеться самому чему-нибуть научиться, а не тупо таскать с ИС чужие разработки.
(57) Сэнкс, а то я уже полез за покрывшимся пылью диском с Delphi. Хотя, как говорится, давно не брал я в руки шашку, так что или вспонинать Delphi или изучать .net - одно и тоже :))
причем если вызываю этот цикл в процедуре "ПриОткрытии" документа, то вс нормально, если вызываю из обработчика нажатия кнопки в форме того же документа, то на определенном номере фигуры выпрыгивает ошибка.
Нажми на кнопку "выполнить" 2 раза и получишь результат.
Кроме того если попробуешь открыть эту обработку второй раз не закрывая 1С то глюк увидишь после первого нажатия на кнопку "Выполнить"
{Форма.Форма1(70)}: Ошибка при вызове метода контекста (ОчиститьПамять): Произошла исключительная ситуация (Dushelov.GDI): Method not found: 'System.GCNotificationStatus System.GC.WaitForFullGCComplete()'.
Рис.ОчиститьПамять();
по причине:
Произошла исключительная ситуация (Dushelov.GDI): Method not found: 'System.GCNotificationStatus System.GC.WaitForFullGCComplete()'.
просто у тебя в ридмишке дана ссылка на фреймворк без всяких сервиспаков, я его и ставил.
Спрашиваю прежде чем качать, потму что инет у меня не очень анлим и качать все подряд не очень охота.
(80) Обнови до SP1 и события будут ловиться. Да и проверь, подписаны ли эти события у компоненты (после того, как удалил/добавил) они у тебя, скорее всего пустые, не подписанные.
линия не выводится на форму, пока не свернешь/развернешь окно. Как устроить обновление изображения или что-то в этом роде?
Отвечаю сам себе:
Рис.Refresh();
Уважаемый Dushelov. Control на 5 баллов. То, что нужно, спасибо. Только хотелось бы более подробного описания функций. Трудновато до всего доходить методом тыка...
да вот отображать надо именно в Вашей компоненте. Задача в следующем: нарисовать таблицу (большую или нет зависит от пользователя), в некоторых ячейках нарисовать цветные квадратики, некоторые ячейки соединить дугами, и дат пользователю возможность перемещать эти квадратики. А для перемещения надо отслеживать события нажатие кнопки мыши, движение курсора и отжатие кнопки. Поэтому рисовать картинку, сохранять в файл и загружать в поле картинки не подходит.
Нашёл выход: на форме разместить панель, отключить свойство "использовать только видимую область", на ней разместить актив-икс и у него указать ширину и высоту большие, тогда полосы прокрутки будут у панели и много места для рисования! Спасибо за компоненту!