![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
BlackShadow |
![]()
Сообщение
#21
|
Гость ![]() |
Бродяжник, надеюсь к критике ты относишься нормально :p2:
Вот это сильно по глазам ударило: Timer1.Enabled:=false; Впринципе как и это x:=0; Можно было бы оформит как инициализированную переменную. Далее. Можно было бы вырезать кнопочку "maximize", а то смотриться смешно ![]() Итого. Вариант неплохой. При маденьких картинках всё "на ура". Поставил большую - мерцало только в путь. Я бы порекомендовал заменить обработчик таймера таким образом, чтобы он вызывал InvalidateRect в нужной области а не Repaint (кнопкам-то зачем лишний раз перерисовывться ![]() |
Alx |
![]()
Сообщение
#22
|
Гость ![]() |
Спасибо! Вечером, как только доберусь до Делфи, буду пробовать.
![]() |
Бродяжник |
![]()
Сообщение
#23
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Нормально отношусь! Ламер я... зато со стажем! Таймер я в программе отключил, чтобы наглядно было видно, что при старте программы он должен быть отключен. Когда его на форму кидаешь, он по умолчанию включен. Конечно, его нужно отключать прямо в Инспекторе объектов. А про инициализированные переменные в Дельфи я и правда не знал... я всю жизнь думал, что это привилегия Си. И с InvalidateRect vs Repaint тоже справедливо. А мерцать все равно будет на больших картинках, другое дело, что без двойной буфферизации мерцать будет гораздо мерцательнее.
|
BlackShadow |
![]()
Сообщение
#24
|
Гость ![]() |
В зависимости от версии переменные могут быть инициализированы или так Const x:Integer=0; или так Var x:Integer=0;
Первый вариант ещё и в паскале прокатывает. А ещё так можно статические переменные в функциях объявлять... Но это уже к теме не относится... А про InvalidateRect vs Repaint ещё как справедливо. Насколько я помню так или иначе Repaint сводится к InvalidateRect(Handle,ClientRect). Незачем в таком случае перерисовывать всё... а ещё мысль извратная появилась: сделать 2 TImage, расположить их друг на друге и делать так: 1). Рисуем в "спрятанном" 2). Выносим его вперёд. Дальше вроде понятно. Что-то типа "видеостраницы своими руками". Вот в душе не знаю что это даст. Но попробывать можно... Жаль что Delphi под рукой нет ![]() |
Бродяжник |
![]()
Сообщение
#25
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Version 1.1.
Прикрепленные файлы ![]() |
P@sh@ |
![]()
Сообщение
#26
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: ![]() ![]() ![]() |
Alx
Ну а почему у меня процедура не вызывается? Этот метод вызывается автоматически... а что не рисует... может картинка не подгрузилась? я же рабочий пример кинул... PS: картинка у меня была большая (1024х768) и ничего не мерцало абсолютно |
Alx |
![]()
Сообщение
#27
|
Гость ![]() |
Ой! Всё супер! Не мерцает! СПАСИБОЧКИ!
Вот только если вы тут такие умные собрались, может скажите, пожалуйста, можно так картинку не БМП, а ЙПГ крутить????? И если да, то как? |
BlackShadow |
![]()
Сообщение
#28
|
Гость ![]() |
А что jpg нельзя загрузить так же как и bmp? Тогда попроьуй TPaintBox что ли... Позабывал уже всё с этим .Net
![]() |
P@sh@ |
![]()
Сообщение
#29
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: ![]() ![]() ![]() |
Alx
насчет bmp и jpeg - я использовал класс TBitmap для загрузки картинки... есть и другие - TJPEGImage, например... но лучше использовать универсальный TPicture - он сам распознает картинку по расширению файла, а рисовать можно через его свойство Graphic: что-то типа form1.canvas.draw(...., picture1.graphic); |
![]() ![]() |
![]() |
Текстовая версия | 23.07.2025 21:22 |