![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| Zero |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Народ, у меня в программе, есть заставка, которая работает следующим образом:
При запуске программы, появляется невидимое окно, на котором есть картинка, а за этой картинкой цифра которая отсчитывается в обратном порядке начиная от 3-ёх, но как раз проблема в том, что цифры наезжают др. на друга, хотя если в не прозрачном окне сделать тоже самое, тогда всё нормально, а переключение цифр происходит так:
Но вот сам код, он сделан в двух модулях: Для Самого проекта:
А это модуль формы окна заставки:
При этом на формеволяется таймер с интервалом в 3000; А дополнительные настройки формы: BorderStyle ─ BsNone; ... остальные не имеет смысла показывать. А также шрифт Label ─ 200, но он также не на что не влияет... Замечание: Единственное могу добавить, если сторку
Пожалуйста, если кто знает как сдесь можно что-либо исправить, то напишить что-нибудь. |
||||||||
|
|||||||||
| p0s0l |
|
||||||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 16 Всего: 112 |
На ум приходит такое:
1) Использовать свойство TransparentColor / TransparentColorValue Это самый правильный способ будет, и самый простой, но работать будет только начиная с Win2k (вроде)... Для этого установи свойство TransparentColor в True, выставь TransparentColorValue, например, в clWhite. В OnPaint будет так:
Если подумать, то можно упростить так (OnPaint):
2) Способ немного посложнее. Не совсем правильный, но работать будет везде. Для этого запоминай то, что нарисовано на экране на том месте, куда будет выведена форма. А потом рисуй на форме это в качестве фона, и поверх этого выводи картинку... Будет криво смотреться, если под твоей формой что-нибудь шевелится (кино например смотрится) - оно в пределах формы будет неподвижным... Делается так: В OnCreate ставишь:
В OnPaint будет так:
PS: совет: 1- грузи картинку лучше один раз и потом её отображай. 2- освобождай память, а то у тебя нет ниодного bitmap.Free (хотя может ты это специально не написал, чтоб меньше кода было тут ?...) Добавлено @ 15:53 3) Использовать регионы - в FAQ поищи статью по этому поводу... -------------------- С уважением, г-н Посол. |
||||||||
|
|||||||||
| Zero |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Это верно, а вот в Win'9X, такое сво-во не работает, я конечно курсач делаю на XP, но предявлять я его буду, в радике, где стоят совковые компы, и с ОС Windows '98. Конечно 1-ый вариант можно было бы исп. в лучшем случае, но придётся всётаки второй Да кстати спасибо г-н Посол, 2-ой код вполне работает, но теперь появилась др. мелкая проблема, изображение загружаемое, из файла появляется с копией рабочего стола но только в таком размере, какой размер имеет сам мой файл.bmp, а остальная часть рабочего стола остаётся без изменений. В принципе можно сделать, за место
т.е. чтобы размер определялся не из изображения, а присваивал размер экрана, но тогда изображение появляется в верхнем левом углу. PoSol, может ты знаешь как сделать чтобы изображение грузилось именно в центор экрана, или что не будь моумнее можеш предложить, а то я уже целых час, сижу тут химичу, но доконца как надо здесь, не получается. И ещё из-за этого мне придётся придумывать как получить размер экрана универсальным способом... |
||||
|
|||||
| p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 16 Всего: 112 |
Что-то не понял о чём речь...
Если правильно дошло, то у тебя на форме показывается не та часть экрана ? Для универсальности можно сделать так (так даже можно форму будет перемещать по экрану): Создание bb в OnCreate будет таким:
Вместо Canvas.Draw(0, 0, bb); (в OnPaint) будет такое:
-------------------- С уважением, г-н Посол. |
||||
|
|||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Спасибо, то что надо!!!
Теперь всё, супер!!! |
|||
|
||||
![]()
|
| Правила форума "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. |