Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 6 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Значит проблема следующая.

На Image выводиться изображение, при помощи стандартных методов Canvas.
Затем размеры Image меняются (причем размеры могут быть больше формы), все стирается и рисуется новая картинка. Проблема в том, что она рисуется только на область старого размера.

С PaintBox все вроде получаеться, но если окно моей программы свернуть или перекрыть другим окном, то рисунок исчезает. На Visual Basic эта проблема решалась путем установки AutoRedraw = true, а на Delphi я не нашел аналога. и еще я не знаю как рисунок из PaintBox сохранить в фаил.

Подскажите как изменить облость вывода у Image или как сделать, чтобы рисунок на PaintBox не исчезал.

И еще вопрос, можно ли рисовать сразу в файл bmp



Партнер
 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
есть специальная тема по Delphi.
Vic-Tor писал(а):
как сделать, чтобы рисунок на PaintBox не исчезал

у него есть св-во onPaint, туда пихай отрисовку своей картинки.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

onPaint можносказать помогло, но каждый раз отрисовывать изображение немножко не проктично. На слабых машинах будет немного тормозить.

И все же кто нибудь знает как можно рисовать сразу в фаил


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Vic-Tor рисуй на TBitMap и делай SaveToFile, обновление через onPaint
Цитата:
но каждый раз отрисовывать изображение немножко не проктично

отгадай с трех раз как происходит обновление изображения в TImage при перекрытии другими окнами ;)
Цитата:
На слабых машинах будет немного тормозить.

не будет, правда это зависит от кривости рук программера...
Добавлено спустя 1 минуту, 4 секунды
ЗЫ в PaintBox можешь выводить этот битмап методом Canvas.Draw()

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Конечно спасибо за ответы.

Но зря ты про кривость рук говориш. Код уже конкретно оптимизирован, просто вычислений слишком много. А в Delphi я новичок, а из всей литературы есть только книга по Turbo Pascal да Help на инглише в котором я не очень шарю.


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Vic-Tor
Цитата:
Код уже конкретно оптимизирован, просто вычислений слишком много.
Так делай эти вычисления не в событии, а отдельной функцией, которую будешь вызывать по onPain, или есть еще вариант - если картинка меняется медленно, то хрании ее в битмапи и по onPaint просто делай Draw на канву PaintBox.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 6 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan