Как задать прозрачность графическому объекту? - страница 3

 
Roman Starostin:

Думается мне, что Dmitry просто нечем заняться, вот он просиживает на форуме, пытаясь вставить свое личное "Я" в любую тему. Грустно это, когда человек так активно ищет внимание к своей персоне по средством сообщений. 

По поводу темы: Всегда обращаюсь на этот форум по поводу сложных вопросов, связанных с MQL, т.к. считаю, что тут находится огромное количество умных прогеров, готовых дать совет.

Единственное, что я не понял, насколько сложно реализовать (показать мне, как начинающему кодеру) эту задачу на конкретном примере посредством Canvas и с чем связана сложность: С большими трудозатратами в плане времени разработки или желанием опытных юзеров набить карман на даже таком обычном примере с прямоугольником?

И давай уже прекращать оффоп, если лично я захочу с кем то поср**ься,  я найду людей за пределами профессионального форума.

Да. Особенно грустно, когда кто-то много фантазирует не в тему. 
 
Через канвас не управляют прозрачностью графических объектолв. На канвас рисуют с прозрачность. Абсолютное принципиальное отличие.  
 
Roman Starostin:

...

Единственное, что я не понял, насколько сложно реализовать (показать мне, как начинающему кодеру) эту задачу на конкретном примере посредством Canvas и с чем связана сложность: С большими трудозатратами в плане времени разработки или желанием опытных юзеров набить карман на даже таком обычном примере с прямоугольником?

..

Абсолютно нет никакой сложности, окромя одной преграды - Вашего нежелания писать программы на MQL5. Начните уже писать пример - пусть и не работающий, выкладывайте здесь и просите помощи. В общем начните что-то самостоятельно делать на MQL5.

 
Karputov Vladimir:

Абсолютно нет никакой сложности, окромя одной преграды - Вашего нежелания писать программы на MQL5. Начните уже писать пример - пусть и не работающий, выкладывайте здесь и просите помощи. В общем начните что-то самостоятельно делать на MQL5.

Забыл добавить - Спасибо за статью.
Разобрался, хотя и не полностью в Канвасе, но добыть Прозрачность умудрился )

Нашел еще подробное описание создания инфо панели, вдруг кому пригодится: http://ruforum.mt5.com/threads/1266-arhiv-mql4-neskolko-voprosov-ot-nachinayushchego?p=11884706&viewfull=1#post11884706 

Karputov Vladimir: Подскажите, Насколько сильно может тормозить процесс Канвас в отличие от обычных графических элементов? 

Хочу поменять текст в лейблах, что на скриншоте, на текст Канвас и обновлять время каждый тик. Не сильно ли взвоет от этого мой VPS? Спасибо.

Файлы:
v284ye.PNG  10 kb
 
Roman Starostin:

...

Karputov Vladimir: Подскажите, Насколько сильно может тормозить процесс Канвас в отличие от обычных графических элементов? 

..

Ну вообще-то  Вы на канвасе (читай в буфере) что-то рисуете и когда всё отрисовали - то один раз вызываете метод Update. Всё зависит от сложностей Ваших вычислений при построении. Для оценки скорости можно использовать счётчики на базе GetTickCount или GetMicrosecondCount.

 

Roman Starostin:

...

...

Хочу поменять текст в лейблах, что на скриншоте, на текст Канвас и обновлять время каждый тик. Не сильно ли взвоет от этого мой VPS? Спасибо.

На виртуальном хостинге нет графиков и графики - поэтому бесполезно что-либо отображать. На виртуальном хостинге работают роботы - им не нужны визуальные эффекты:

 

 
Karputov Vladimir:

На виртуальном хостинге нет графиков и графики - поэтому бесполезно что-либо отображать. На виртуальном хостинге работают роботы - им не нужны визуальные эффекты:Я 

Я пользуюсь другим VPS, но суть, в общем то не в этом. 

Подскажите еще так вопрос. Заполняю текстовые данные в панель

 panel1.Erase(ARGB(200,120,120,120));

 panel1.TextOut(15,20,"time :",ARGB(240,0,0,128),TA_LEFT|TA_VCENTER);

 panel1.TextOut(15,45,"spread :",ARGB(240,0,0,128),TA_LEFT|TA_VCENTER);

 panel1.TextOut(15,70,"ask :",ARGB(240,0,0,128),TA_LEFT|TA_VCENTER);

 panel1.TextOut(15,95,"bid :",ARGB(240,0,0,128),TA_LEFT|TA_VCENTER);

 panel1.Update();  // Обновим панельку 

Функцией Erase я отчищаю только цвет рабочего пространства, или же удаляю весь предыдущий текст, фигуры на нем, что в примере?

Если идет удаление текста, то можно ли вместо удаления как то заменить текст на новый с целью улучшения быстродействия? Потому что даже добавление обычного полупрозрачного прямоугольника очень заметно замедлило работу терминала на визуализации.

К примеру, если мне нужно на обычном лейбле поменять текст, я же его не тупо удаляю, и заново все перерисовываю, а только выделяю его и меняю описание 

 
Roman Starostin:

Я пользуюсь другим VPS, но суть, в общем то не в этом. 

Подскажите еще так вопрос. Заполняю текстовые данные в панель

 panel1.Erase(ARGB(200,120,120,120));

 panel1.TextOut(15,20,"time :",ARGB(240,0,0,128),TA_LEFT|TA_VCENTER);

 panel1.TextOut(15,45,"spread :",ARGB(240,0,0,128),TA_LEFT|TA_VCENTER);

 panel1.TextOut(15,70,"ask :",ARGB(240,0,0,128),TA_LEFT|TA_VCENTER);

 panel1.TextOut(15,95,"bid :",ARGB(240,0,0,128),TA_LEFT|TA_VCENTER);

 panel1.Update();  // Обновим панельку 

Функцией Erase я отчищаю только цвет рабочего пространства, или же удаляю весь предыдущий текст, фигуры на нем, что в примере?

Если идет удаление текста, то можно ли вместо удаления как то заменить текст на новый с целью улучшения быстродействия? Потому что даже добавление обычного полупрозрачного прямоугольника очень заметно замедлило работу терминала на визуализации.

К примеру, если мне нужно на обычном лейбле поменять текст, я же его не тупо удаляю, и заново все перерисовываю, а только выделяю его и меняю описание 

Как бы лучше представить что такое канвас? В общем рассматривайте канвас как школьную доску (то есть это один слой), а метод Erase - это тряпка, которой Вы стираете ВСЁ что было до этого на доске и потом перекрашиваете ВСЮ доску в определённый цвет.

 

Karputov Vladimir  Подскажите, еще, пожалуйста, такой момент. Если я делаю Canvas, а сверху рисую лейбл, то при выполнении команды CHARTEVENT_OBJECT_CLICK выделяется панель Канваса. Как ее можно переместить на задний план?

Варианты ниже не работают (

ObjectSetInteger(0,CanvasPanel,OBJPROP_BACK,false); ObjectSetInteger(0,CanvasPanel,OBJPROP_ZORDER,0);
 
Roman Starostin:

Karputov Vladimir  Подскажите, еще, пожалуйста, такой момент. Если я делаю Canvas, а сверху рисую лейбл, то при выполнении команды CHARTEVENT_OBJECT_CLICK выделяется панель Канваса. Как ее можно переместить на задний план?

Варианты ниже не работают (

ObjectSetInteger(0,CanvasPanel,OBJPROP_BACK,false); ObjectSetInteger(0,CanvasPanel,OBJPROP_ZORDER,0);
А для лейбла, какой OBJPROP_ZORDER Вы выставляете? Тоже ноль?
 
Karputov Vladimir:
А для лейбла, какой OBJPROP_ZORDER Вы выставляете? Тоже ноль?
Больше 0, естественно )
хоть 1, хоть 100 - не реагирует (
Причина обращения: