//+------------------------------------------------------------------+//| Создание холста для рисования элемента |//+------------------------------------------------------------------+bool CElement::CreateCanvas(conststring name,constint x,constint y,
constint x_size,constint y_size,ENUM_COLOR_FORMAT clr_format=COLOR_FORMAT_ARGB_NORMALIZE)
{
//--- Корректировка размеровint xsize =(x_size<1)? 50 : x_size;
int ysize =(y_size<1)? 20 : y_size;
//--- Сбросить последнюю ошибку
::ResetLastError();
//--- Создание объектаif(!m_canvas.CreateBitmapLabel(m_chart_id,m_subwin,name,x,y,xsize,ysize,clr_format))
{
::Print(__FUNCTION__," > Не удалось создать холст для рисования элемента ("+m_class_name+"): ",::GetLastError());
return(false);
}
//--- Сбросить последнюю ошибку
::ResetLastError();
//--- Получим указатель на базовый классif(!m_canvas.Attach(m_chart_id,name,clr_format))
{
::Print(__FUNCTION__," > Не удалось присоединить холст для рисования к графику: ",::GetLastError());
return(false);
}
//--- Свойства
::ObjectSetString(m_chart_id,m_canvas.ChartObjectName(),OBJPROP_TOOLTIP,"\n");
::ObjectSetInteger(m_chart_id,m_canvas.ChartObjectName(),OBJPROP_CORNER,m_corner);
::ObjectSetInteger(m_chart_id,m_canvas.ChartObjectName(),OBJPROP_SELECTABLE,false);
//--- У всех элементов, кроме формы, приоритет больше, чем у главного элемента
Z_Order((dynamic_cast<CWindow*>(&this)!=NULL)? 0 : m_main.Z_Order()+1);
//--- Координаты
m_canvas.X(x);
m_canvas.Y(y);
//--- Размеры
m_canvas.XSize(x_size);
m_canvas.YSize(y_size);
//--- Отступы от крайней точки
m_canvas.XGap(CalculateXGap(x));
m_canvas.YGap(CalculateYGap(y));
return(true);
}
CreateBitmapLabel - создаем графический ресурс
Attach - читаем этот же ресурс и еще раз пишем в этот же ресурс
Да, а выше CreateBitmapLabel. Я их смотрел. И на сколько я разобрался, CreateBitmapLabel создает пустой ресурс, а Attach читает ресурс (какой-либо) и пишет его в m_pixels. И как уже писал выше, создаем ресурс (CreateBitmapLabel) с именем name, потом читаем этот же ресурс (Attach) и опять пишем прочитанное в тот же m_pixels
Здравствуйте.
CreateBitmapLabel - создаем графический ресурс
Attach - читаем этот же ресурс и еще раз пишем в этот же ресурс
Или я что-то не так понимаю?
И снова здравствуйте :)
Time и Level вообще где-то используется? Не нашел нигде...
Для чего используется SubWindowNumber?
Я это к тому, что ChartXYToTimePrice достаточно затратная операция для выполнения при каждом движении мыши...
Всё ведь в комментариях написано. Добавить даже нечего.
Всё ведь в комментариях написано. Добавить даже нечего.
Если Вы про комментарии в коде, то там все понятно, но вопросы ж не про то :)
...
Я это к тому, что ChartXYToTimePrice достаточно затратная операция для выполнения при каждом движении мыши...
Для получения относительной координаты, если GUI не в главном окне.
Для получения относительной координаты, если GUI не в главном окне.
Больше интересует, зачем Attach? На сколько я понял, он повторяет действия CreateBitmapLabel
Так может и вычислять только когда GUI не в главном окне? :)
Поэкспериментируйте. Бывают ещё такие варианты, когда главное окно GUI в подокне графика, а диалоговые в главном.
Больше интересует, зачем Attach? На сколько я понял, он повторяет действия CreateBitmapLabel
Есть же код метода CCanvas::Attach():
Есть же код метода CCanvas::Attach():
Да, а выше CreateBitmapLabel. Я их смотрел. И на сколько я разобрался, CreateBitmapLabel создает пустой ресурс, а Attach читает ресурс (какой-либо) и пишет его в m_pixels. И как уже писал выше, создаем ресурс (CreateBitmapLabel) с именем name, потом читаем этот же ресурс (Attach) и опять пишем прочитанное в тот же m_pixels
Или я что-то не так понимаю?
PS Экспериментально без Attach все работает :)
...
PS Экспериментально без Attach все работает :)
На самом деле? Значит снова произошли, какие-то изменения. Раньше точно, что-то не работало.
А после удаления GUI с графика объекты удаляются?
На самом деле? Значит снова произошли, какие-то изменения. Раньше точно, что-то не работало.
А после удаления GUI с графика объекты удаляются?
Вроде все чисто :)