|
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 66
|
|
Мерцают картинки в форме!29.12.2017, 01:10. Показов 2446. Ответов 27
Метки нет (Все метки)
Доброго времени суток!
Вводная: В форму добавил несколько картинок (.bmp), перекрыл одни картинки другими (разные цвета). Цель - при наведении курсора на картинку 1 она меняется на картинку 2 (т.е. как бы меняет свой цвет), при потере фокуса всё возвращается обратно. Суть проблемы: Все эти картинки мерцают (при чем не всегда!), если курсор перемещается в свободной зоне от этих картинок (т.е. без наведения курсором на них). Вопрос: Из за чего это происходит и как решить? P.S. Форма в "скрепке", всем откликнувшимся заранее большое спасибо!
0
|
|
| 29.12.2017, 01:10 | |
|
Ответы с готовыми решениями:
27
Рандомное отображение картинки на форме
|
|
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 29.12.2017, 08:26 | |
|
Не надо многократно выполнять один и тот же код при движении мышки. В модель формы введены 2 boolean переменные уровня модуля v0 и v3 для прямоугольников 0 и 3. Если соответствующая переменная равна False, то код выполняется, если True то выходим из процедуры. Когда заходим в прямоугольник, то устанавливаем переменную в True, когда мышка попадает на другой объект, то False и при следующем проходе по прямоугольнику код выполнится.
1
|
|
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
|
|
| 29.12.2017, 09:17 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 66
|
|
| 29.12.2017, 20:19 [ТС] | |
|
Mobile, спасибо за совет! При перемещении курсора в свободном месте работает, но при перемещении с картинки на картинку продолжается мерцание остальных.
alvk, БД давно есть и работает, требуется немного дизайн посовременней сделать.
0
|
|
|
13176 / 5875 / 1505
Регистрация: 05.10.2016
Сообщений: 16,497
|
||
| 29.12.2017, 21:14 | ||
|
Ничего не мерцает и всё работает штатно и красиво. Машина: Мать: ASUS H97-PLUS Процессор Intel Core i3-4340, Haswell, 3.60 GHz, 4M, socket 1150 Модули памяти DIMM DDR3 4G 1333MHz PC3-10600 Kingston = 2 шт. ... И всё красиво!
0
|
||
|
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 66
|
|
| 29.12.2017, 23:39 [ТС] | |
|
Странно! Мерцание происходит только в светлом прямоугольнике и только после загрузки формы (при быстром передвижении курсора между картинками), спустя небольшое время мерцание проходит. Вот незадача
![]() Добавлено через 2 часа 19 минут Вот что заметил. Если после загрузки формы не перемещать курсор в форму в течение двух-трех секунд, то мерцания потом нет, а если переместить его сразу возникает данный неприятный эффект с картинками. Как бы реализовать эту задержку незаметно для пользователя???
0
|
|
|
13176 / 5875 / 1505
Регистрация: 05.10.2016
Сообщений: 16,497
|
||
| 30.12.2017, 00:20 | ||
|
При этом происходит примерно подобный эффект и всё проще. Если не получиться - копирование картинок с обьекта ImageLIST
0
|
||
|
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||
| 30.12.2017, 00:26 | ||
Сообщение было отмечено Kirill_S как решение
Решение
1
|
||
|
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 66
|
|
| 30.12.2017, 02:04 [ТС] | |
|
Mobile, здорово! То что нужно, спасибо в очередной раз!!!!
0
|
|
|
Модератор
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
|
|||
| 04.01.2018, 13:42 | |||
Сообщение было отмечено Kirill_S как решение
РешениеМерцаний никаких гарантированно, на любой машине. Форма КопияГлавная.
2
|
|||
|
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 66
|
|
| 04.01.2018, 23:21 [ТС] | |
|
Capi, спасибо, все отлично работает, здорово!
1) Можете объяснить как это работает, а то я не понял, честно говоря, почти ничего в коде. 2) Можно ли добиться "мягкости" отрисовки светло-серого рисунка (ощущение, что темно-серый рисунок не перекрывают светло-серый до конца, смотрится слишком "контрастным")?
0
|
|
|
Модератор
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
|
|
| 04.01.2018, 23:30 | |
|
Kirill_S,
1) Конечно, объясню. 2) Посмотрю, что там. Тогда уже все сразу напишу.
0
|
|
|
Модератор
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
|
|
| 05.01.2018, 01:10 | |
|
Kirill_S,
Вот вариант с "мягкой" прорисовкой. Посмотрите, пожалуйста. Пояснения завтра, сейчас уже не буду наспех делать.
0
|
|
|
Модератор
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
|
||||||||||||
| 06.01.2018, 02:56 | ||||||||||||
|
I этап. Техническая подготовка в режиме конструктора Систематизируем нумерацию. Совокупность участвующих в процессе картинок и надписей представим как совокупность восьми групп, в каждой из которых содержится три элемента – картинка черная, картинка серая, надпись. Перенумеруем элементы следующим образом: - пусть N – номер группы по порядку (сверху вниз, слева направо); - надпись - НадписьN; - картинка черная – РисунокN*2-1; - картинка серая – РисунокN*2. Примеры: первая группа элементов – Надпись1, Рисунок1 (картинка черная), Рисунок2 (картинка серая) ………………….. последняя группа элементов – Надпись8, Рисунок15 (картинка черная), Рисунок16 (картинка серая) Всем рисункам с нечетными номерами (черным картинкам) зададим свойство "Вывод на экран" Нет (Visible False). II этап. Первичное определение действий при движении мыши для надписей, серых картинок и белого прямоугольника Выполняем это в процедуре обработки события Открытие формы. Можно было бы сразу задать в конструкторе, но в VBA, на мой взгляд, в данном случае проще.
передавая ей в качестве аргумента номер группы, в которую входит элемент. Примеры: Надпись1, Рисунок2 (картинка серая) - "=FuncPicView(1)" ………………. Надпись8, Рисунок16 (картинка серая) - "=FuncPicView(8)" Движение же мыши по белому прямоугольнику будет вызывать пользовательскую функцию FuncPicView, передавая ей в качестве аргумента 0. Прямоугольник0 - "=FuncPicView(0)" III этап. Работа функции FuncPicView
а) Если ind <> 0, значит, пришли из группы, следовательно, нужно "проявить" эту группу (делаем видимой черную картинку, невидимой серую картинку и делаем яркой надпись); затем отключаем обработку движения мыши по надписи (OnMouseMove = ""), для серой картинки этого делать не надо, так как она уже и так спрятана и на мышь реагировать не может. б) Если ind = 0, значит, пришли из белого прямоугольника и единственное, что нужно сделать – отключить дальнейшую обработку движения мыши по нему (Прямоугольник0.OnMouseMove = "") 2. Потом выясняем, что обрабатывалось при предыдущем вызове функции - к.-л. группа или белый прямоугольник. Для этого проверяем переменную уровня модуля формы indPrev. а) Если indPrev <> 0, значит, нужно "затемнить" эту предыдущую группу (делаем невидимой черную картинку, видимой серую картинку и делаем серой надпись); затем восстанавливаем обработку движения мыши по надписи (OnMouseMove = "=FuncPicView(" & indPrev & ")"), б) Если indPrev = 0, значит, предыдущим был белый прямоугольник и нужно восстановить обработку движения мыши по нему (Прямоугольник0.OnMouseMove = "=FuncPicView(0)") 3.Запоминаем в indPrev, что обрабатывалось - к.-л. группа или белый прямоугольник. indPrev = ind Вот и все. Расписывать действия для "крестика" закрытия формы не буду. Там все должно быть понятно после приведенных объяснений. Только поясню, что запись вида Прямоугольник3.OnMouseMove = "[Event Procedure]" означает то же самое, что в конструкторе [Процедура обработки событий] на вкладке "События" окна свойств.
3
|
||||||||||||
|
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 66
|
|
| 06.01.2018, 11:29 [ТС] | |
|
Capi, спасибо огромное за труды! Буду изучать, ибо Ваш вариант идеальней идеального!
0
|
|
|
1323 / 541 / 112
Регистрация: 29.03.2016
Сообщений: 1,307
|
|
| 06.01.2018, 17:11 | |
|
Capi,
а в mdb никак? Посмотреть хочется, а нечем.
0
|
|
|
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 06.01.2018, 17:58 | |
|
Я не Capi, но перевести в mdb могу.
2
|
|
|
1323 / 541 / 112
Регистрация: 29.03.2016
Сообщений: 1,307
|
|
| 06.01.2018, 18:16 | |
|
Шорт, все картинки потерялись.
Но все равно, спасибо.
0
|
|
|
Модератор
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
|
|||
| 06.01.2018, 18:34 | |||
|
Но последний вариант был ТЕСТ_2 в #13. Разница некоторая есть. Сейчас сделаю для последнего. Я уже пробовала раньше переводить в mdb, открывала в 2000-м - картинок не было. Может, кто-то знает причину такого исчезновения картинок? Пробовала копировать и вставлять в Word 2007, тоже безрезультатно. Как-то они иначе внедрены.
0
|
|||
|
Модератор
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
|
|
| 06.01.2018, 18:51 | |
|
Вот последний вариант, в формате 2003.
В 2007-м картинки видны. В 2003-м, наверное, нет.
2
|
|
| 06.01.2018, 18:51 | |
|
Помогаю со студенческими работами здесь
20
Можно ли хранить картинки вне базы и выводить их потом в ЛЕНТОЧНОЙ форме?
Названия кнопок меню постоянно мерцают Мерцают цвета при просмотре видео Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|