Обработка демонстрирует технологию перемещения картинки на форме. Код простой и понятный, без оптимизации — для простоты восприятия. Может кому и пригодится в повседневной работе 🙂
При нажатии кнопки «Как рамка», при перетаскивании картинка сохраняет свое первоначальное положение которое меняет только после окончания перетаскивания. Пользователь наблюдает перемещение в виде рамки.
Для перетаскивания, наводим курсор, нажимаем левую кнопку мыши, удерживая ее, производим перемещение объекта путем акта движения руки в заданном головой направлении.
Навеяно обработкой «Рабочий стол» — //infostart.ru/projects/5466/
… убИл …
… вОт …
….. ))) ….
2(Шепот): Спасибо 🙂
I_G_O_R то же плюс поставил в «Настройка и оптимизация» …
… ммм …
… это ВАМ спАсибо …
… удачи …
я только не учитывал границы формы, но это не сложно, одно условие и выравнивание по границе — 2 пункта. Так, привел для примера. Но возможности идея открывает огромные. I_G_O_R большой респект за идею.
WKBAPKA и I_G_O_R
… гениально чЁ ужЖж и говорить …
… с уважением «Шёпот теней» …
Шёпот согласись, идея рабочего стола лежала на поверхности. Каждый из нас работал с рабочим столом каждый день и до Светозора не подумал, что можно такое же сделать в 1С. Говорят, что в наше время что либо новое придумать нельзя, ан нет, можно, еще как можно 🙂
тебе спасибо за плюс, думаю что твой рабочий стол теперь будет еще лучше!
идея рабочего стола меня бесит до крайности.
ну мало ли что меня бесит. идея очень шикарная. особенно, с меню в УПП и УТП 🙂
(7) … нууу…. не думаю…
… и не потому, что «упираюсь» — просто не понимаю необходмости и нужности и удобства в «двигании» значков …
… вОООбщем это дело вкуса …
… а рабочих столов в 1С полно … посмотрите БП, например, — просто они реализованы в манере 1С — вОООбщем дело вкуса …
… мне в «моём» столе нравятся именно тем что описано в описании … а передвижение значков мало интересует …
… идея I_G_O_R и ваше воплощение — отлично … я восхощЁн …
Я уже говорил, что это не моя идея, а Светозора, так что спасибо ему. У него код был закрыт, но модуль формы нельзя закрыть, я отладчиком обнаружил, что на форме появляются 8 невидимых картинок и все стало ясно, а код написать дело техники. Код был закрыт, я его разгадал и рассказал всем, а вы мне плюсики ставите, как-то не хорошо, не нужны мне такие плюсики.
(11) … хорошо … забрал …. было бы сказано … вот …
2(11): Плюсики за то что не поленился. У меня была идея код открыть, да все как то руки не доходили.
Дело в том, что для таких конфигураций как УТП и УПП такие технологии очень сильно облегчают жисть. Если еще добавить более одного рабочего стола, на которых можно группировать ярлыки, очень будет удобно делать интерфейсы.
(11),(13) Я извиняюсь.
Но при втором взгляде предлагамое решение (перетаскивание на «рабочем столе») показалось «диковатым извращением».
На мой взгляд, оказалось гораздо проще , нагляднее, функциональнее использовать следующий подход.
Расположить на форме поле табличного документа («рабочий стол»). Роль «ярлыков» будут играть рисунки («текст») табличного документа.
И тогда все операции с «ярлыками — рисунками» (добавление, удаление, перетаскивание, изменения размера, корректировка) будут осуществляться на уровне платформы.
Запретить активизацию пустых ячеек, убрать автоскроллинг и т.д.
можно программно.
(12) Шепот , нас обманули ! См. (14)
(15) … на рынке всегда два умных дурака … и оба радуются … )))
… данное решение мне понравлось …
… понимаю что их может быть много … решение с табличном полем ? — согласен …
… но есть идея а есть реализация … то, что кажется лёгким изначальным — становится трудным при реализации …
… рабочий стол — штатными средствами — при 100 % заполнении рисунком вЕЕЕсьма «тормознутое» дело …
… повторюсь: дело не столько в красоте сколько в практичности и не обходимости … поэтому изначально надо задаться вопросом для «ЧЕГО» делаем «рабочий стол» … «свой» я делал из описанной в описании необходимости …
… поэтому дискуссия должна протекать в русле не «как» — т.к. способов реализации много» а для «чего» — тогда вопрос методов реализации почти отпадёт …
… вот …
(16) Бесполезность идеи «рабочего стола» не вызывает сомнений.
Речь идет лишь о технологическом вопросе : о подходе к решению проблемы «перетаскивания» и др.
(17) … бесполезность … ? … нуу… нууу… идея летает в воздухе и не только … имеет несколько воплощений как от сАмой 1С так и других товарищЧей …
.. и это не столько «идея» сколько лишь возможность повторить то, что уже прижилось в других системах … метод аналогии …
… думаю не стоит своЁ мнение или мнения круга лиц — выдавать как истину …
… думаю как раз наоОобоОорот что те сложившиеся формы общения интерФейса -будут жить и развиваться — это и «меню» и «значки» и «рабочий стол» и их различные сочетания …
… другого пока не придумали …
… или ??? …
… вот …
(18)
Уточняю (17) : речь идет не об идее рабочего стола , как таковой , а об
идее такой реализации «рабочего стола», как в текущей теме.
Так вот : также как и моя с табличном полем , так и идея автора темы могут рассматриваться лишь как демонстрации техники программирования.
Применение в бизнес-решениях таких технологий выглядит «чудаковато».
Говорю только от своего имени , разумеется.
Более практичным выглядит подход к построению интерфейса в 8.2.
(18) … принято … СОгласен … уважаю твоё мнение …
.. лично я подерживаю любую идею «рабочего стола» …
… по поводу «чудаковато»-сти — думается мы начинаем вторгаться в область «вкусов» и «предпочтений» — а тут выяснить истину БЕЗполезно … )))
… вОт …
в (20) читать первую строку в следующем изложении:
(19) … принято … СОгласен … уважаю твоё мнение …
… волнуюсьВОТошибаюсь …
WKBAPKA
… опять поздравляю: уже «6» …
… не плохо ))) и рАзговор удАлся …
… так сказать теория и практика рука об руку …
… дальнейших удачЬ …
использовать поле табличного документа… можно попробывать…. только помоему нельзя сделать подложку, по крайней мере я не нашел такой возможности, и может повылазить куча неприятных нюансов
т.е. если подложку нельзя сделать тогда это большой минус в таком решении. А с точки зрения реализации соглашусь, очень просто все делается
(24) Что такое «подложка» ?
сорри, задний фон
(26) Не думал , что это существенно. Ок.Подумаю.
А вообще , после выхода 8.2 предплагаю мы будем с грустью смотреть на эти изыски.
согласен. но пока 8.2. нет приходиться извращаться.. а прикиньбте, как народ до сих пор извращается на 7.7. 😉 и не переходит же на 8.х )
короче и то фигня и это, мне лично рабочий стол вообще не нужен т.к. я работаю во франче. Клиенты мне за рабочий стол врядли заплатят, а бесплатно работать не хочется. Есть только один плюс: никогда не работал с перетаскиванием, а теперь кое-что умею.
(29): ага, это верно. но все таки, дело не в самом рабочем столе, а технологии. это дает возможность создавать не страндартные меню. и это плюс, как поется в песне 🙂
да и самое главное во всем этом, это не стандартные решения. т.е. заставляе взглянуть на многие проблемы с другой стороны.
иногда, то что говорят, нельзя сделать штатными средствами, оказывается можно, и работает достаточно эффективно
(29) , (31) Согласен с обоими. Новыми знаниями и навыками и полезны такие обсуждения.
(31) А «подложку» я всё-таки прикину как сделать. Потом доложу.
(33) .. как версия для подложки — сделать как вебСайдеры — пилят риснок на необходимые части, вставляют — смотрится как единое целое … у них даже и программки специальные есть по разбиению … главное чтобы количество квадратиков было не запредельным ….
… вот …
… всем удачи …
(34) Почти ничего не понял.
Решение в лоб выглядит так :
Р — рисунок табл.документа накрывает все видимое поле табл.документа с типом «картинка» , куда загружается файл с расширением «.bmp» («Подложка»)
П — поля картинки с запрещением перетаскивания (т.е. запрещают скроллинг)
Схема расположения :
РП
П
Поверх рисунка «Р»(подложка) свободно создаются и перетаскиваются рисунки с типом «текст».
Пока так.
Виноват , пользователю недоступно тогда изменение фона рабочего стола.
Виноват 2.
Никаких проблем с изменением пользователем картинки фона рабочего стола («подложки») не возникнет.
Организуется для пользователя диалог выбора файла «.bmp» и после :
МояКартинка = Новый Картинка(ИмяФайлаКартинки)
РисунокРабочегоСтола.Картинка = МояКартинка;
я на выходных попробую, будет ли работать:) но иногда и на форме имеет смысл что либо подвигать )
(38) ,(34) Виноват 3.
А лучшим ,по-моему, решением будет использование свойства табл.документа
ФоноваяКартинка , куда и загружается файл .bmp , Например 800х600.
Тогда рисунок «Р» — просто не нужен.
Конечно ,нужно пробовать , чтобы сказать что-то более определенное , но
сам подход с использованием поля табл.документа и рисунков табл.документа (текст, картинка , лист Excel , фигуры и т.д) в качестве ярлыков гораздо перспективнее . Т.к. используется вся мощь платформы , то вид и функциональность «рабочего стола» могут быть просто недостижимыми
при другом подходе.
(8) Когда чела «бесит» — это от лукавого…. У каждого свои фобии.
Блин .. а с утечкой памяти что нить придумали.
Я все уже перепробовал — лажа получается
а куда она утекает? 😉
(42) А ведь утекает таки;)
ну дык вопросы к 1С разработчикам 😉
(44) Ловко спихнул
возможно это происходит из за объявленной глобальной переменной в модуле… в принципе, ее можно и не использовать…
(46) А не из-за динамического создания-удаления временных картинок вокруг перетаскиваемой на форме, случаем?
ну вы интересные ребята, честное слово… откуда я знаю, из-за чего. Я ведь оперирую языком платформы.
(41) Вот игруха, вроде как, без утечки:http://infostart.ru/public/58600/
Мои предположения в 47-м посте, похоже, оправдались…
2(49): я еще раз настаиваю на том, что это баг платформы… если есть возможность создавать на лету объекты, то и Destructor этих объектов должен работать корректно… если есть утечка памяти, значит это баг в платформе!
типа сам себя похвалил 😀
я этот пример написал за один час… есть у меня подозрение, что утечка памяти связана с тем, что есть глобальная переменная для временного хранения текущей позиции картинки, а может , связано с неоптимальной передаче параметров… это всего лишь пример… плж., оптимизируем и улучьшаем!
поддерживаю WKBAPKA, в моей обработке тоже утечки,баг платформы однозначно
вот этот код попробуйте у себя запустить:
сразу видно утечки памяти, всех поздравляю с обнаружением очередного бага, не было бы инфостарта, может никогда бы не нашли 😮
2(53): + 1
иногда у меня создается впечатление, что некоторые путают языки высокого уровня с предметно-ориентированными конструкторами, и выдвигают к ним повышенные требования…
(50)-(54) +49, Похоже у нас получился разговор немого со слепым, никто не сомневался, что баг платформы, вопрос был в том, чтобы понять где он и обойти, сохранив возможность перетаскивания, что я Вам и продемонстрировал в игрухе тут:http://infostart.ru/public/58600/
А Вы вместо того, чтобы попытаться понять, что Вам говорит человек, а потом уже отвечать, твердите свое… Ну да ладно… Конечны Вы ребята самые умные, куда уж мне;)
2(55): я пока свой рабочий стол не собирался делать, так что искать в чем баг платформы и как его обойти не очень хотелось… да и I_G_O_R продемонстрировал незатейливый код по созданию и удалению картинки в цикле. Как обойти этот баг? 😉
(56) > Как обойти этот баг?
Так качните игруху по ссылке и гляньте предложенной мной способ обхода в действии, сделайте мне приятное;) Ну ё, я ж тоже человек, тоже хочу одобрения от коллег;) Способ прост, как пять копеек, кстати;)
Я тупо сделал своп картинок — т.е. не удаляю/создаю а просто меняю координаты у существующих картинок — все нормально.
(57) Обработку не качал — как у тебя сделано?
2(58): нормальный вариант решения… прелесть
(58) Тот же принцип…
Как то в снеговике через одно место это всё…
Вот пример таскания всего в клюшках + формекс:
2(60): переходим на ты 😉 ты же понимаешь, что при должном вниманию, каждому из нас пришла бы в голову такое же решение… мы же не дураки тут… но подчеркиваю, еще раз, при внимании, я лишь выложил пример и написал, дальше можно оптимизировать как хош 😉
Я персона Вип Вип, у меня есть джип джип, обгоняю, подрезаю, все сигналят, БИП, БИП 😉
2(61): показать полочки, где лежат пирожки ? тут обсуждается реализация штатными средствам!
(62) > ты же понимаешь…
Полностью согласен, вообще, как-то нехорошо стартанули в общении, но думаю, что в дальнейшем, эта заминка замнется и забудется:)
2(65): 😉 я вообще не конфликтый человек, просто иногда очень эмоциональный 🙁
По- ходу, в 1с перетаскивание картинки нереально стандартными событиями с получением координат дропа, всё перетаскивание ориентировано на табличные поля, колонки и прочее, пасьянс косынку написать нельзя, например:-)))))
ЗЫ:Штатными средствами 1С без аддонов и костылей