Страница: 1 |
Вопрос: Плавное движение контрола | Добавлено: 16.01.04 17:08 |
Автор вопроса: ![]() |
Наверное каждый из вас уже с этимсталкивался (картинки двигал). Мне нужно, чтоб отдельный контрол (например кнопка), плавно высовывался из-за угла экрана. Все эксперименты с таймером закончились полной неудачей. Как можно плавно двигать контрол по форме? |
Ответы | Всего ответов: 12 |
Номер ответа: 1 Автор ответа: ![]() ![]() ICQ: 190197618 Вопросов: 25 Ответов: 97 |
Профиль | Цитата | #1 | Добавлено: 16.01.04 17:16 |
А у меня всё с таймер великолепно получалось. Подбираешь подходящий интервал, и какое-нибудь число, на которое будет увеличиваться позиция контрола... А в чём твои траблы с таймером заключаются? |
Номер ответа: 2 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 16.01.04 17:28 |
Мне нужно перетянуть контрол на 15 сантиметров за 1 секунду. Движение получается обрывистым, фиговым и. т. п. при любых интервалах таймера и значениях увеличения позиции. Эсли у тебя все круто, напиши, пожалуйста, исходник и кинь на dasharm@mail.ru |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 252999255 Вопросов: 36 Ответов: 247 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 16.01.04 22:12 |
Тут есть некоторая сложность по скорости, за 1 секунду на 15 см довольно много, но можно попробовать так: мы видим 24 кадра в сек, значит надо твои 15 см \24 и 1000милисекунд\24 и двигать всё время на это значенее |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 16.01.04 22:12 |
А как чебя ведут циклы с разным Step'ом ??? |
Номер ответа: 5 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 16.01.04 23:20 |
Хэ, даже не пробовал с разными степами. А какой синтаксис (не хочу искать по книгах)? |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 16.01.04 23:28 |
dim i as long i=[кол-во шагов] for i=0 to i step 10 [тело цикла] next |
Номер ответа: 7 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 17.01.04 00:16 |
Очень быстро... Ничего не получается. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 17.01.04 00:56 |
Ну вот то быстро то медленно, тебе не угодить |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 17.01.04 01:33 |
А что если таскать не сам контрол а его изображение, а контрол делать невидимым до конца движения. Прорисовывать можно BitBlt(GetDc(Control.hWnd) |
Номер ответа: 10 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 17.01.04 15:37 |
Call Sleep(10&) - попробую 2CyRax Мне нужно , чтоб выезжала менюшка из-за угла экрана (прикольную игрушку делаю, с другом - дизайнером), т. е. копирование изображения не катит, хотя... Вопрос: Эсли я скопирую изображение, например, из Image1, как я могу после этого обращатся к этому изображению как к объекту (ну типа мне нужно клик и маусмув отследить)? |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 17.01.04 17:16 |
На вопрос который 2CyRax: На сколько я понимаю - никак, это ты уже будешь отслеживать события на том контроле, на котором происходит рисование (по координатам). Да, из из Image ты ничего не сможешь с помощью АПИ скопировать, у него нет свойства hDC (DeviceContent'a) |
Номер ответа: 12 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #12 | Добавлено: 18.01.04 11:23 |
For i = 0 To 1000 Call Sleep(1) Command1.Left = Command1.Left + 1 Next i ---------- Вау, вау, вау - это то, что надо!-------------- Спасибо большое всем, особенно sne! |
Страница: 1 |
|