| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > вывод графики на экран. |
| Автор: Fredik 10.9.2007, 16:25 | ||
| Злравствуйте. Требется ваша помощь господа. Я вывожу на канву рабочего стола изображение.. вот так ..
вывожу его каждую секунду .. это график и его надо обновлять в такой интервал.. выводя заново картинку я перекрываю старую область .. в этом проблем нет .. НО.. мне надо выводить картинку с прозрачным фоном .. чтоб на экране отображался сам график.. а не огромный черный прямоугольник с маленьким графиком .. вывести такую картинку тоже не составляет труда .. вот только получается нечем перекрыть старое изображение как в случае с не прозрачным фоном .. и получается график налаживается сам на себя .. и создает кашу .. можно перерисовать все элементы на экране например функцией InvalidateRect(0, nil, true); но эта перерисовка создает мерцание .. а надо перерисовать или только область где выводится картинка или еще как то .. но чтоб не было мерцания... Заранее примного благодарен! |
| Автор: Snowy 10.9.2007, 16:41 |
| А зачем ты рисуешь на рабочем столе? Сделай своё окно и рисуй на нём. А прозрачность окну легко сделать системно. Но, если это принципиально, то нужно запомнить, что находится под областью на которой ты рисуешь и на битмап отрисовывать сначала её, а потом график. |
| Автор: Fredik 10.9.2007, 17:48 |
| на рабочем столе я рисую для того что б картинка выводилась по верх всех окон... если это будет в окне .. (пусть поверх др окон) то чтоб мне кликнуть на элемент под графиком надо будет отодвигать окно .. это затраты времени .. неудобства.. а вот запоминание области хороший вариант .. но я уже думал об этом здесь тоже есть бок.. запоминаться будет постоянно одна и та же картинка .. если в это время на фоне сменится окошечко .. то его часть будет заменена старой картинкой .. получается тут динамически меняется и фон и сам график.. вот в чем проблема.. тоесть мне надо обязательно как то перерисовывать фон чтоб освободить его от старого рисунка перед нанесением нового .. |
| Автор: ivan219 10.9.2007, 18:14 |
| Чтоб не мерцало попробуй DoubleBuffered:=True; Но проблемы всё равно будут так как ресуеш на главном окне. |
| Автор: BaD_SeCt0R 10.9.2007, 22:16 | ||
Дык ты не скриншот делай, а непосредственно снимок того, что на десктопе |
| Автор: Fredik 11.9.2007, 09:52 | ||||
да действительно .. регионы использовать будет то что надо ! Спасибо.. RE: Дык ты не скриншот делай, а непосредственно снимок того, что на десктопе чтоб мне сделать снимок непосредственно того надо его обновиь .. если бы все так просто было я бы не создавал этот пост Всем спасибо .. Добавлено через 3 минуты и 7 секунд хотя регионами тоже будет не то немного .. линии графика тонкие и извилистые .. будет не красиво и даже не читабильно может быть .. но вариант хорош под эту задачу !! а я пожалуй остановлюсь на черном обновляемом прямоугольнике |
| Автор: BaD_SeCt0R 11.9.2007, 10:14 |
Ну а кто тебе это-то сделать мешает? |
| Автор: bems 11.9.2007, 10:41 |
| посмотриhttp://forum.vingrad.ru/index.php?showtopic=163465&view=findpost&p=1199262 |
| Автор: ivan219 11.9.2007, 18:36 |
А ну да |
| Автор: Fredik 11.9.2007, 21:35 | ||
и это твой ответ ? от того что ты оставиш на пост больше умнее не станеш.. Ты наверно не внимательно читал что выше написанно ! и всеравно спасибо.. хоть посмеялся .. |
| Автор: MetalFan 11.9.2007, 22:34 |
| хм... гдето недавно проскакивала тема про OSD окна... Добавлено через 2 минуты и 40 секунд ага, вот в той теме сслыка была дана http://users.adelphia.net/~rllibby/source.html там посмотри OSD. может то, что надо. |
| Автор: Fredik 12.9.2007, 10:03 |
| Спасибо.. щас посмотрю .. никогда не слышал про osd окна |