![]() |
Модераторы: Snowy, Alexeis, MetalFan |
![]() ![]() ![]() |
|
darkida |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 59 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
Как избавиться от мигания при использовании onmousemove? Или какая есть этому альтернатива?
Ну вот к примеру я хочу создать кнопку, ставлю изображение и на каждое действие изменяю её на другое. На onmousemove, onclick, onup, ondown. Так если мышкой водить по этому изображению начинают идти полосы. Как быть? |
|||
|
||||
darkida |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 59 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
Блин, хотя может быть это потому что использую Delphi 6, не помню сейчас как работало на 7. Проверьте пожалуйста.
Ну а если же на последних версиях такая же баида. То хорошо было бы менять картинки используя IF. К примеру: если курсор мышы находиться в таком то квадрате то такое то изображение иначе другое. Это сообщение отредактировал(а) darkida - 27.1.2010, 16:07 |
|||
|
||||
darkida |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 59 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
Ой, да перло. Можно с viseble играть, но вот тока почему то не работает. Почему? Что не так? Или надо что то дополнительно прописывать вот к этому:
image1.Visible:=true; Хотя тоже не уверен в том что поможет. Ведь она будет выполняться ровно столько же сколько мы будем двигать мышью. Помогите народ... Неужто у всех все нормально с этим. |
|||
|
||||
darkida |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 59 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
Нашел вот это. Но воспользоваться никак не смог. Походу для них еще обработчик надо писать. Я запарился ждать разумный вариант. И сделал пока так чтоб глаза не резала. Создал shape и на него событие onmove и на image загружаю картинку на этот shape наложил еще один shape чуть меньше размером опять onmove и на тот же image другую картинку, а потом тока сам image опять же меньший размером предыдущих shapov. Вот такую вот глупость пришлось делать, и если умных ответов не будет, то может кому-нибудь то поможет. |
|||
|
||||
~FoX~ |
|
||||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 2 Всего: 68 |
darkida, Ух, какая активность...
Мигание происходит потому что при каждом движении ты свою картинку подгружаешь, рисуешь или чего ты там с ней делаешь... работа с графикой вообще процесс напряжный, для ВЦЛ-я. Заведи специальный флажок булевый глобальный, при событии онмаусмув проверяй его состояние и если он, допустим истеный, то меня картинку и ставь его в ложь..
А при остальных событиях
Это сообщение отредактировал(а) ~FoX~ - 27.1.2010, 21:24 |
||||
|
|||||
darkida |
|
||||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 59 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
О дождался.
А то как чокнутый сам спрашиваю. И сам себе отвечаю и сам идеи себе талкаю. Но это я потому что память плохая и с блокнотами проблема и комп люблю форматировать. Мда точно что-то не подумал. С флажками то. )) Пусть гооглик будет всегда здоровым. ))) Вот нашел ещё методы, испробовал - рабочие. Выложу чтоб другие не тратили на поиски свое время. И мне легче было потом найти.
а потом присваиваем их:
Хотя можно было тока часть скинуть и так понятно. Ну ладно. аниме кнопки без мирцания 2 метод B:Bool; //Объявите B где-нибудь после implementation В FormCreate включите следующее B:=True; SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, 0, @B, SPIF_SENDCHANGE) тоже помогает. Так что методы есть. АЖ целых 3. Хотя на vingrade не находил. Спасибо FOX. Сейчас проверю. |
||||
|
|||||
darkida |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 59 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
Вот ещё один вопрос, ну даже не вопрос а просьба.
Скиньте кодинг как можно checkbox заменить image' ами. Что то не получается? Думаю что image надо присваивать TAG и считать клики? А как правильно не знаю. Помогите? |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 2 Всего: 68 |
darkida, Одна тема - один вопрос!
Тебе галочки нужно заменить картинками или что? |
|||
|
||||
darkida |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 59 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
Ну да. Так же две картинки. одна с галочкой другая без нее. И при клике менялись.
Я думаю из-за такого вопроса не стоит создавать тему. Напиши пожалуйста код FOX. Заранее благодарен. Это сообщение отредактировал(а) darkida - 28.1.2010, 13:26 |
|||
|
||||
eXtr0gen |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 2.2.2010 Репутация: нет Всего: нет |
Так же рекомендую поставить флаг DoubleBuffered в значение True. Тоже повышает скорость отрисовки. + более тщательно проработай процедуру перерисовки. Очень часто некоторые функции можно вынести за пределы цикла...
|
|||
|
||||
darkida |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 59 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
Да DoubleBuffered помогает. Но страшно жрет ресурсы. Если много картинок то потом начинает подвисать все.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Звук, графика и видео" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |