![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| dilik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 9.5.2006 Где: CCCP Репутация: нет Всего: нет |
Подскажите пожалуйста как сымитировать нажатие кнопки. Т.е. У меня есть два изображения - два положения "кнопки" - обычное состояние и нажатое (вдавленное). Как сделать так, чтобы при нажатии и удерживании лев.клав.мыши на первое изображение оно заменилось вторым и вернулось опять к первому при отпускании клавиши.
Я не совсем понимаю в Delphi, но мне кажется надо использовать OnMouseDown и OnMouseUp. ПОЖАЛУЙСТА! СРОЧНО! |
|||
|
||||
| MaXL |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 24.10.2005 Где: Владивосток Репутация: нет Всего: 2 |
Ну скорее всего по наступления одного события меняешь картинку(например OnMouseDown - меняешь на вдавленныю картинку, а на OnMouseUp на обычную).
Вот так делаешь. Это сообщение отредактировал(а) MaXL - 13.5.2006, 08:24 -------------------- MaXL |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
dilik, совершенно верно по OnMouseDown рисовать одно изображение по OnMouseUp другое, вот только хранить их лучше в объекте класса TImageList, тогда грузится они будут из памяти а не из файла. При запуске программы загружаем все изображения в TImageList, а в нужный момент их получаем примерно так
Добавлено @ 12:35 MaXL, представь себе скорость перерисовки если изображение будет каждый раз грузится из файла -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: нет Всего: 8 |
alexeis1, Ваш способ тоже не быстр.
скорость поболе будет + возможность наложения эффектов -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
drkot, может быть можно и ускорить раза в два, но для такой операции это уже не критично, кроме того, я его уже опробовал его в именно такой задаче. Так можно и до APi дойти, напимер заменить
TCanvas.copy(); на patblt. ImageList - удобен тем что грузит изображения одного размера и является "родным" для VCL. Если вы имели ввиду таким образом работать с TImageList, то поясните подробнее. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| dilik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 9.5.2006 Где: CCCP Репутация: нет Всего: нет |
Спасибо всем, с этой проблемой я уже разобрался. Воспользовался советом MaXL, у меня картинки 10х10, так что никаких проблем не вижу. Еще раз всем спасибо
|
|||
|
||||
![]()
|
| Правила форума "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. |