Страница: 1 | 2 |
Вопрос: Подскажите!
Добавлено: 23.07.04 08:48
Автор вопроса: Mufasa | Web-сайт:
Вот тут я прогу новую делаю, и хотел, что бы как в ВинАмпе5, такая весчь снизу выдвигалась(настройки там типа). Вот, подскажите как эту байду сделать, что бы ничё не моргало, а плавно выдвигалось.
Ответы
Всего ответов: 17
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 23.07.04 10:32
циклами
Номер ответа: 2
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #2
Добавлено: 23.07.04 10:35
Циклами глюкаво...
Засунь вот это в таймер
Timer1.Interval = 1
Me.Height = Me.Height + 25
If Me.Height > 6000 Then Timer1.Enabled = False
Номер ответа: 3
Автор ответа:
Добрый волшебник
Вопросов: 1
Ответов: 6
Профиль | | #3
Добавлено: 23.07.04 14:01
2: dNW
Да точно, таймер рулит и мне кажется (хотя я могу и ошибаться, если это так, то прошу меня поправить) что в 98-й виде интервал=1 будет работать не так как мы на это надеемся. Предпочтительней ставитьинтервал не менее 40 мс. Если поставить 1 мс то ИМХО он будет работать неравномерно, а в 2000 и ХР гораздо быстрее.
Номер ответа: 4
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #4
Добавлено: 23.07.04 14:02
Значит циклами с DoEvents и Sleep(0&... Вот таймер, это как раз есть дурной тон!
Номер ответа: 5
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #5
Добавлено: 23.07.04 15:25
2Добрый волшебник: Да. Я тоже заметил, что таймер в разных осях работает с разными скоростями.
2sne: Почему таймер дурной тон?
Номер ответа: 6
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #6
Добавлено: 23.07.04 18:52
Потому мало того что это контрол, да еще он себе и отдельную процедуру требует, и это не говоря о том, что он расходует ресурсы (память) не программы а системы, следовательно их число ограниченно, отсюда, таймеры нужно беречь ... а цикл, он такой маленький, хорошенький...
Номер ответа: 7
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #7
Добавлено: 23.07.04 19:34
1.Цикл без Sleep(0& ето тоже дурной тон.
2.Цикл с Sleep(0& дурной тон, потому что блокирует главный поток приложения, никаких тебе прорисовований и прочих прелестей, отсюда и контролы что движуться в циклах имеют такой плохой вид.
Номер ответа: 8
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #8
Добавлено: 23.07.04 22:03
DaSharm, цитата:
> Значит циклами с DoEvents и Sleep(0&...
Читай Рихтера полностью Он описывает что делает Sleep с нулевым параметром... и убедись что ты не прав...
Номер ответа: 9
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #9
Добавлено: 24.07.04 11:53
Ну а как же производительность разных машин?
Номер ответа: 10
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #10
Добавлено: 24.07.04 12:41
Значит Sleep(1&
Номер ответа: 11
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #11
Добавлено: 24.07.04 13:52
И ты хочешь сказать, что слип(1) не создает задержку потока???
Номер ответа: 12
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #12
Добавлено: 24.07.04 17:25
Создает, но благодаря DoEvents, он не зависает, а продолжает работать! (это я про цикл).
Т.ч. эмуляция многопоточности работает примерно так же как и таймер, в том смысле что так же переключает поток на обработку оконных сообщений, так же дает их обработать, но при этом не забывая и о текущей, на данный момент, операции...
И вообще, в чем ты меня пытаешься убедить, что использование таймера в данном случае много лучший вариант !?
Номер ответа: 13
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #13
Добавлено: 25.07.04 08:31
Подскажите не читавшему Рихтера, чем полезен вызов Sleep(0)? Я что-то
ума не приложу... И целый день за этой темой наблюдаю, ожидая развязки
Номер ответа: 14
Автор ответа:
Mufasa
Вопросов: 19
Ответов: 63
Web-сайт:
Профиль | | #14
Добавлено: 25.07.04 10:09
Ну чё ребята, пасиба Вам за помощь!
Через таймер я тоже пробовал, но моргает, зараза!
Номер ответа: 15
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #15
Добавлено: 25.07.04 11:03
2 SNE: Оконные сообщения то принимаються, но обрабатываться не будут, пока приложение не выйдет из цикла. Я не говорю, что таймер лучше, но и циклы тоже плохо. Вот если бы отдельный поток тогда бы и циклы...