Как в paintbox нарисовать полупрозрачный прямоугольник?
=========================================================

 Здравствуйте!  

Как в paintbox нарисовать полупрозрачный прямоугольник?  

я пробовал экспериментировать с Canvas.Pen.Mode, но это не совсем тот эффект который нужен - прямоугольник получается слишком ярким(скрин прикрепил).  

Как я понял, просто с Canvas.Rectangle это сделать не получится(поправьте если не прав).  

Пока в голову пришло такое решение: при рисовании прямоугольника помещать его на bitmap, у bitmap менять прозрачность и потом этот bitmap рисовать на paintbox.  

Для прозрачности наткнулся на такую штуку <https://sourceforge.net/projects/tfastdib/> (мб есть какие то другие варианты?)  

  

Проблема в том, что я не знаю как это реализовать на delphi - не понимаю, как реализовать момент с размещением нарисованного прямоугольника в bitmap и последующий перенос этого bitmap в то же место на paintbox.  

  

Вообще суть этого прямоугольника - подобие текстовыделителя   

В image загружается картинка и поверх нее располагается paintbox, пользователь может рисовать прямоугольники - выделять какие то области()  

  

**скрин**  

![5eeb45a3e56c7203575619.png](https://habrastorage.org/webt/5e/eb/45/5eeb45a3e56c7203575619.png)  

 

 Через стандартный Canvas нельзя (или настолько костыльно) нарисовать полупрозрачный объект. Для этого можно использовать (в стандартном VCL) [GDI+](http://www.delphikingdom.com/asp/viewitem.asp?catalogid=772) или в новых версиях Delphi - [TDirect2DCanvas](http://docwiki.embarcadero.com/Libraries/Rio/en/Vcl.Direct2D.TDirect2DCanvas)  

Рисовать с помощью Canvas вообще плохая идея. Минимум производительности.   

Можешь сразу начинать изучать FMX (фреймворк FireMonkey). Он и кроссплатформенный и вся графика в нём рисуется через видеокарту. А значит быстро, по дефолту имеется сглаживание и прочее прочее.  

И PaintBox можно найти в качестве примера и всё там посмотреть.