![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
где рисовать прогресс бар, чтобы он был ресайзабл, и т.д.
как нормальный прогресс, не пропадал...не вис. спасибо за помощь. --------------------
Don't ask me why, ask me how. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
А чем не устраивает стандартный прогрессбар TProgressBar, он ведь удовлетворяет
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
нужен замороченый, знаешь который рисуется при сканировании диска,
т.е. разными цветами в дискретных позициях, много строчек, сделал в паинтбохе он стирается если во время сканирования открыть др окошко, виснит.че делать? --------------------
Don't ask me why, ask me how. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Рисовать в OnPaint
|
|||
|
||||
| artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
дело в том, что я графикой не занимаюсь, больше системный программист,
WinAPI, устройства, вот первый раз столкнулся с программированием интерфейса программы. можно поподробнее про OnPaint. что делать по этому событию, как это поможет? --------------------
Don't ask me why, ask me how. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
событие OnPaint возникает каждый раз когда требуется перерисовка экрана, например, когда другое приложение накладывается и стирает содержимое окна. но прще рисовать в TImage, поскольку он сам востонавливает картинку.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
да я так уже и делаю.спасибо.
а по refresh или repaint это событие возникает? --------------------
Don't ask me why, ask me how. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Да
|
|||
|
||||
| artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
получается каждый раз разный Image надо рисовать.
я хотел бы, чтоб при выполнении какой-либо операции(по завершении) вызывалась ф-я подрисовки ещё одной позиции в прогресс бар, который бы менял масштабируемость прямо на лету при изменениии размеров окна. чем мне лучше воспользоваться? --------------------
Don't ask me why, ask me how. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Создай TBitmap. Дорисовывай на него.
А в онпаинт копируй этот битмап на свой котрол. Так уж устроена винда - при отрисовке нужно рисовать всё целиком. |
|||
|
||||
| artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
я сделал так чтобы он ресайз с битмапа постоянно копировалось на канву пэйнтбокса
с пересчетом масштаба, а в он шоу последнее состояние битмапа--->задумка работает, в поряде. но исполнение не нравится- слишком сильно мерцает изображение при ресайзе. есть ли от этого спасение? --------------------
Don't ask me why, ask me how. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Это скорее всего операция изменения размеров работает медедленно, можно вообще во время изменения размеров не прорисовывать картинку или делать отрисовку с задержкой (чтоб не каждый кадр рисовать).
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
я видел как у BinaryBiz этот progressbar нормально ресайзится.
а мне надо ещё и текущую инфу отображать. сильно поможет задержка отрисовки? Добавлено @ 12:49 у меня на progressbare 2 цвета : бэкграунд и полосочки, так вот мерцвет цветом бэка... --------------------
Don't ask me why, ask me how. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
А не пробовал без ресайза обойтись?
Подготовить уже нужный размер битмапа и рисовать на нем, с поправкой на размер - так явно быстрее будет. Кроме того, попробуй DoubleBuffered := true или вручную использовать BeginPaint - EndPaint |
|||
|
||||
| artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
а ресайз , кровъ из носу надо- задание такое.
кстати, помогла отрисовка через кадр.спасибо DoubleBuffered := true------>это что за конструкция, а куда её ... того. --------------------
Don't ask me why, ask me how. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
На данном этапе - да. Но на более медленных машинах нужно уже будет через 4 кадра рисовать
Пропиши это в OnCreate. Делает это много чего. Но тебе из этого нужно скрытие WM_ERASEBKGND. Проще говоря, устранит мерцание за счёт того, что перерисовка не будет отображена, пока изображение не ляжет на конечный DC. Т.е. при установки этой проперти применяется другой вариант рисования контрола, устраняющий мерцание. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Да это работает куда лучше, вот только непонятно, почему оно в формах по дефолту не стоит.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
стал рисовать в image. double buffered просто мега вешь.действительно странно почему её нет по умолчанию.
станно вообще почему есть doublebuffered:=false; но почему-то при ресайзе, когда я каждай рас image перерисовываю, он принимает причудливые формы. хотя масштабироавание правильное(т.к. если запускать с любого размера в начале рисунок правильный). в чем могу косячить? --------------------
Don't ask me why, ask me how. |
|||
|
||||
| artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
.нужно чтоб толшина строчек не менялась.т.е. должен перемещаться только конец.
Это сообщение отредактировал(а) artem1987 - 30.8.2006, 16:19 --------------------
Don't ask me why, ask me how. |
|||
|
||||
| artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
может ли из-за простой перерисовки имаджа при ресайзе на GEForce 6200 не тормозить ,а на интегрированой с 64 мб тормозить жестко как это можно исправить??
--------------------
Don't ask me why, ask me how. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Ну вывод должен быть медленнее, но не настолько же, ведь это 2D, а не 3D.
Добавлено @ 15:28 ну это примерно так если на GEForce 6200 это будет 1000fps, то на интегрированой - 150fps -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
вот и я думаю.но разница сильно заметна.как если doublebuffered отключить...
может можно как-то исправить.. --------------------
Don't ask me why, ask me how. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Вероятно, что то с настройками системы, вот я недавно смотрел спец модуль от Rouse_ так вот он жутко мигает на GeForce 4, но на работе, на какой-то несчасной видюшке NVidia Vanta (даже не слышал про такую), все ОК. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 1 Всего: 88 |
А как же GetUpdateRgn?
-------------------- Обижено школьников: 8 |
|||
|
||||
![]()
|
| Правила форума "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. |