|
|
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Подскажите, как реализовать рисование стрелок мышкой на canvas? Ниже код, как я это реализовал(на форме только TImage), но у меня имеется проблема - в начале стрелки рисуются лишние линии(скрин прикрепил). Код: pascal 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. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. Так же не могу решить проблему: в процессе рисования(когда зажата кнопка мыши и меняется расположение курсора), стрелка не основного цвета, а черная и в месте, где стрелка проходит по уже нарисованной - происходит наложение с инверсией цвета. Такая же проблема с инверсией при рисовании простой линии, эллипса и прямоугольника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2020, 23:30 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
Код: pascal 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. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2020, 01:11 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
DimaBr, Благодарю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2020, 03:08 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
DimaBr, А возможно ли подобным образом, с сохранением в список, реализовать рисование произвольной линии? Само рисование реализовать получилось вот так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Пока с голову пришел вариант сохранять точки в массив и рисовать их на OnPaint, но мне кажется это плохой вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 03:59 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
bigjoe Пока с голову пришел вариант сохранять точки в массив и рисовать их на OnPaint, но мне кажется это плохой вариант. Ну можно сделать Bitmap и рисовать на нём, а потом в OnPaint отрисовывать его... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 12:19 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
Код: pascal 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. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 12:42 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
DimaBr Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. А потом это в продакшн 😁 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 14:41 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
DimaBr, Благодарю! То что надо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2020, 10:28 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
DimaBr, а можешь чтоб было семь взаимно перпендикулярных прямых красных линий, две зеленым цветом, три – прозрачным и одна чтоб в форме котика? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2020, 11:57 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2020, 12:36 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
.. Обогнали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2020, 12:36 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
а где кот на дельфи? Без кота не считово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2020, 13:12 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
DimaBr, пробую доработать рисование стрелки так, чтобы рядом с ней можно было расположить текст(InputQuery пока взял для теста, потом планирую заменить на появляющийся memo или richedit) Код: pascal 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. но почему то при движении мыши, сразу появляется InputQuery. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2020, 01:57 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
Так же, подобным образом, на основе инструмента прямоугольник, пробую сделать инструмент "пикселизации" (эффект мозайки) По задумке - DrawFocusRect рисует область, далее я эту область копирую с помощью BitBlt, обрабатываю полученный фрагмент функцией( https://delphisources.ru/pages/faq/base/bmp_mosaic.html) и размещаю его на PaintBox туда, где было выделение. "По отдельности" это работает) Но мне не удается прикрутить это к текущей реализации рисования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2020, 03:02 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
bigjoe но почему то при движении мыши, сразу появляется InputQuery. Поместил InputQuery в метод рисования и удивляется что при рисовании выскакивает окно. bigjoe"По отдельности" это работает) Но мне не удается прикрутить это к текущей реализации рисования. Какой ответ вы хотите услышать ? У вас ошибка в 17 стоке !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2020, 03:10 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2020, 03:49 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
DimaBr, DimaBrПоместил InputQuery в метод рисования и удивляется что при рисовании выскакивает окно. Ну мне это показалось логичным)) перед появлением inputbox я поставил проверку drawing = false, а false он становится в процедуре mouseup, перед "последней" PaintBox1.Invalidate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2020, 08:36 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
bigjoe перед появлением inputbox я поставил проверку drawing = false, а false он становится в процедуре mouseup, перед "последней" PaintBox1.Invalidate. Drawing - флажок указывающий рисует ли в данный момент пользователь. Drawing := true когда пользователь нажал кнопку мыши и Drawing := false когда отпустил. А объекты рисуются независимо от нажатой мыши. И спрашивать текст во время рисования нельзя. Свернули/развернули форму, все объекты заново рисуются. Разве в этот момент нужно спрашивать текст ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2020, 14:09 |
|
||
|
Рисование стрелок мышкой на Canvas
|
|||
|---|---|---|---|
|
#18+
Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2020, 14:47 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39968751&tid=2037923]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
177ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
3ms |
| others: | 207ms |
| total: | 491ms |

| 0 / 0 |
