![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| ShuVaS |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 26.12.2004 Где: Севастополь Репутация: нет Всего: нет |
Короче в моей проге есть фоновый рисунок мне нада чтобы этот рисунок выводился как можно скорее и тратил как можно мньше памяти и не тормозил систему.И еще я юзаю Xp манифест (Delphi 7) Проблемки - у меня то фон пропадает то еще че нить .... (нада мне єтот манифест таскать или просто на форму кинуть ?).И последнее - при изменении размеров формы у меня остаютьсянеприятные еффекты от старого рисунка -- как обновить форму ...
|
|||
|
||||
| s-mike |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 16.1.2005 Где: Киев Репутация: 5 Всего: 16 |
Добавлено @ 22:27
Быстрее BitBlt при использовании GDI (стандартных виндовых окошек) еще не придумали. Добавлено @ 22:29
Без разницы. Только в Win9x-2000 размер файла будет больше на несколько Кб ненужного кода, если использовать компонент. Это сообщение отредактировал(а) s-mike - 24.1.2005, 22:26 |
||||||||
|
|||||||||
| ShuVaS |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 26.12.2004 Где: Севастополь Репутация: нет Всего: нет |
А по подробней на счет вывода графики можно ?Стоит ли юзать Image ?Мне нада чтобі еще желательно можно біло изображение натянуть(если не использовать Image -говорят медленно)И Еще мож не по теме токо из-за этого создавать топик не охота - Application.ProcessMEssages - его один раз в процедуре надо ставить:
или после каждогособытия?Если один раз - то где (в самом конце или в начале).... Это сообщение отредактировал(а) ShuVaS - 25.1.2005, 00:25 |
|||
|
||||
| p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 16 Всего: 112 |
Но нужно заметить, что но не стоит бросать VCL и переходить на WinAPI/GDI, и не стоит замудрять голову смешиванием VCL и WinAPI, т.к. VCL всё равно в итоге работает через эти же функции. "Надстройка" сжирает очень-очень мало. Даже если в цикле тысячи раз вызвать BitBlt и сравнить с Canvas.Draw, то разница будет настолько малозначительной, что принимать во внимание её не имеет смысла. Более важную роль при копировании изображения играет формат пикселя. Неправильный выбор формата может привести к замедлению в десятки раз (!). Правильным же подходом является хранение изображения в памяти в формате, идентичном формату контекста, куда будет выводится картинка. Иначе при каждом копировании будет происходить преобразование исходного изображения к нужному формату, поэтому если нужно выводить картинку часто, то лучше сразу привести её к нужному виду... Это делается довольно легко. Например, если картинку выводишь на экран, то нужно делать так:
Это как минимум ускорит вывод битмапа на экран раза в 2-3... -------------------- С уважением, г-н Посол. |
||||
|
|||||
| ShuVaS |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 26.12.2004 Где: Севастополь Репутация: нет Всего: нет |
а как мне напримар вывести ???через Canvas.Draw или через что ???? и на счет Application.ProcessMessages - я спрашую вообще как надо ставить -один раз или несколько в процедуре ?
Это сообщение отредактировал(а) ShuVaS - 25.1.2005, 15:48 |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 16 Всего: 112 |
-------------------- С уважением, г-н Посол. |
|||
|
||||
| ShuVaS |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 26.12.2004 Где: Севастополь Репутация: нет Всего: нет |
г-н Посол вы не множко не поняли ...Я попросил обьснить как работает Application.ProcessMasseges - что бы он работал его нада ставить после ресурсоемкой строчки до нее или вообще один раз в начале (или в конце)...
Насчет рисунка - подскажите наибыстрейший и удобный формат *.bmp или *.jpg .. (учитывая что второй можно сжать легко до 30-40 kb)..И как наконец вывести ето изображение ....(желательно полный код - а то я не понимаю чуток (естественно что это было как можно быстрее и оптимизированнее)... И как обновить окно формы ???(если я хочу просто нажать на кнопку...) P.s - Вот вроде и все |
|||
|
||||
| ДЫМ |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: нет Всего: 8 |
Насколько я понял, ты хочешь, чтобы во время загрузки большого файла контролы реагировали на твои действия. Так вот, ProcessMasseges не поможет, придется сидеть и смотреть на "песочные часы"
Если у тебя большой рисунок, то вывод *.jpg займет заметно больше времени (я проверял). Так, что если так важна скорость, то используй формат *.bmp А так можно заполнить фон
Это сообщение отредактировал(а) ДЫМ - 27.1.2005, 02:59 |
||||||
|
|||||||
![]()
|
| Правила форума "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. |