Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
22.10.2003, 16:16
|
|||
|---|---|---|---|
На каком событии перерисовывать PainBox |
|||
|
#18+
Из Bitmap при помощи CopyRect в PaintBox загружается рисунок. Если открыть другое окно (в моем приложении или другое приложение) и оно перекрывает мой PaintBox, то рисунок стирается. Пробовал на OnActivate делать Repaint - не помогло (OnActivate не наступает, если открывать окно другого приложения). Как поймать момент для перерисовки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.10.2003, 16:43
|
|||
|---|---|---|---|
На каком событии перерисовывать PainBox |
|||
|
#18+
Опечатка в заголовке:PaintBox. При вызове диалога открытия файла OnActivate тоже не наступает. Помогите кто-нибудь!!!!! Замучился уже... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.10.2003, 16:54
|
|||
|---|---|---|---|
На каком событии перерисовывать PainBox |
|||
|
#18+
В документации: Unlike TImage, which displays an image that is stored in a bitmap, icon, or metafile, TPaintBox requires an application to draw the image directly on a canvas. Use the OnPaint event handler to draw on the paint box’s Canvas, the drawing surface of the paint box. Таким образом, тебе нужно на событие OnPaint с помощью CopyRect (или любым другим способом) польностью перерисовывать что хочешь. Т.е. метод Refresh не возымеет действия, т.к. TPaintBox не хранит картинку, и обновлять там нечего. Соответственно вопрос - нужен ли тебе этот TPaintBox? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.10.2003, 17:42
|
|||
|---|---|---|---|
На каком событии перерисовывать PainBox |
|||
|
#18+
Фигня в том что Image моргает при рисовании. Мне нужно чтобы за курсором мыши тянулась линия от места предыдущего клика. Делаю такую штуку: На событии MouseMove рисую линию при Pen.Mode=pmNot. Перед этим восстанавливаю предыдущую линию тем же самым pmNot. Так вот при рисовании Image мигает, а PaintBox нет. Извратился тем, что положил поверх Image(в который запихнул рисунок) PaintBox, в котором и рисую временные линии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.10.2003, 17:58
|
|||
|---|---|---|---|
На каком событии перерисовывать PainBox |
|||
|
#18+
Избавиться от моргания очень просто: Image1.DoubleBuffered := true; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.10.2003, 18:20
|
|||
|---|---|---|---|
|
|||
На каком событии перерисовывать PainBox |
|||
|
#18+
Да вы Shut ить изволите? Только что специально попробовал на TImage нихуя не мигает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. Code just tested on Delphi 7 Не было никаких заскоков и если вместо Image1.Canvas писать Image1.Picture.Bitmap.Canvas . Правда, производительность может оказаться не оптимальной при использовании TImage1 , в некоторых случаях лучше рисовать прямо на канвасе формы, но это зависит от приложения. Если там статическая картинка ( .BMP , .JPG ), то TImage1 лучше, а если изображение генерируется программой (рисуется методами TCanvas ), то быстрее будет по форме рисовать. Ах, да, чуть не забыл, в Delphi 5.0 или 6.0 были какие-то заёбы с миганием и моя старая прога при попытке компиляции замигала. Тогда разбираться было некогда, а Delphi 7, по ходу, этим не страдает, так что я про это забыл... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.10.2003, 18:32
|
|||
|---|---|---|---|
На каком событии перерисовывать PainBox |
|||
|
#18+
Нет, мигание действительно может быть заметно на Delphi6 - зависит от сложности картинки. А вот в Delphi5 такого не наблюдается. Но все действительно дело в DoubleBuffered. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&mobile=1&tid=2116292]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 381ms |

| 0 / 0 |
