Вверх ↑
Ответов: 2236
Рейтинг: 676
#1: 2024-08-15 12:51:10 ЛС | профиль | цитата
Aziz, посмотрел компонент, могу посоветовать следующее:
1. Переходить от графического компонента, к интерфейсному компонента. Говоря простым языком засунуть в ваш элемент PaintBox. Сразу отпадет необходимость связей Bitmap,Width,Height,doCursor,MouseX,MouseY и т.п. Да и ваш элемент не такой простой получится чтоб делать его как графический. Ничего трудного в этом нет, достаточно посмотреть к примеру элемент CtrlPalette (Палитра ссылок) в вкладке Интерфейс. Этот элемент рисует самостоятельно интерфейс на PaintBox и один из самых простых для подсмотреть.
2. По поводу ваших карандашей и убирания их в ящик, тоже можете подсмотреть в том же CtrlPalette (Палитра ссылок) как это реализовано. Насколько знаю, то такого:

pen := CreatePen
лучше избегать в коде рисования (doDraw или _OnPaint), так как это "дорогое" удовольствие в плане производительности. Так что правильнее создать и настроить все карандаши и прочие инструменты при создании элемента (Init).
3. Цвет линейного графика N - эти свойства если правильно понял лучше сделать списком вместе с списком валют. Что-то вроде такого:
Свойство=ClrCurrency писал(а):
EURUSD,Red
USDJPY,65345
GBPUSD,Green
USDCHF,Blue
USDRUB,34654
BTCUSD,Magenta
USDNOK,Lime
XAUUSD,Brown

Где через знак разделителя (настраиваемый как к примеру в таблицах) идут данные. Если цвет не задан, то использовать цвет по умолчанию.
карма: 11

0