Canvas - это круто! - страница 62

 
Nikolai Semko:

Что-то типа такого?



Николай, код примера будет доступен? :)

 
Алексей Барбашин:

Николай, код примера будет доступен? :)

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

Можете сами попробовать это реализовать.
Для помощи вот пару функций из моей реализации, которые отвечают за рисование окна выбора цвета:

void    iCanvas::DrawSetColor(int X,int Y,uint curColor=0xFFFFFFFF)
  {
   if(!SetClr) return;
   uchar R=GETRGBR(curColor);
   uchar G=GETRGBG(curColor);
   uchar B=GETRGBB(curColor);
   FillRectangle(X-3,Y-3,X+330,Y+273,ColorToARGB(0xFFC0C0C0));
   FontSet("Century Gothic",20);
   TextOut(X+23,Y-4,"R "+string(R)+"(#"+ByteToHex(R)+")",0xFF000000);
   TextOut(X+135,Y-4,"G "+string(G)+"(#"+ByteToHex(G)+")",0xFF000000);
   TextOut(X+251,Y-4,"B "+string(B)+"(#"+ByteToHex(B)+")",0xFF000000);
   FillCircle(X+10,Y+6,6,ARGB(255,255,255-R,255-R));
   FillCircle(X+122,Y+6,6,ARGB(255,255-G,255,255-G));
   FillCircle(X+238,Y+6,6,ARGB(255,255-B,255-B,255));
   for(int x=0; x<256; x++)
      for(int y=0; y<256; y++)
        {
         PixelSet(x+X,y+Y+15,ARGB(255,R,x,y));
        }
   uchar rq=(R>127)?0:255;
   Rectangle(G+X-4,B+Y+11,G+X+4,B+Y+19,ARGB(255,0,0,0));
   Rectangle(G+X-3,B+Y+12,G+X+3,B+Y+18,ARGB(255,255,255,255));
   Rectangle(G+X-5,B+Y+10,G+X+5,B+Y+20,ARGB(255,255,255,255));
   for(int y=0; y<256; y++)
     {
      for(int x=0; x<16; x++)
        {
         PixelSet(x+X+263,y+Y+15,ARGB(255,y,x*16,0));
         PixelSet(x+X+263+16,y+Y+15,ARGB(255,y,255,x*16));
         PixelSet(x+X+263+32,y+Y+15,ARGB(255,y,255-x*16,255));
         PixelSet(x+X+263+48,y+Y+15,ARGB(255,y,0,255-x*16));
        }
     }
   Rectangle(X+260,Y+R+12,X+263+67,Y+R+18,0xFFFFFFFF);
   Rectangle(X+261,Y+R+13,X+263+66,Y+R+17,0xFFFFFFFF);
   Update();
  }
string ByteToHex(int n)
  {
   string s="",c;
   if(n==0) return "00";
   int N=n;
   while(n!=0)
     {
      if(n%16<10)
         c=CharToString(uchar(n%16+48));
      else
         c=CharToString(uchar(n%16+55));
      s = c + s;
      n = n / 16;
     }
   if(N<16) s="0"+s;
   return(s);
  }
 

Такое ощущение что на форуме остались только нытики и ботаники. А где те, которые готовы были к подвигам на mql?...

Николай - молодец! Красиво демонстрирует возможности mql. Я бы добавил в названию ветки - Canvas это просто!

А если по существу :)  Николай, а не пробовал заменить ByteToHex() на встроенную функцию StringFormat("%.2X",R)?


p.s. Язык и среда исполнения достигли своего совершенства, и иногда хочется сказать: - Остановитесь! :) 

Документация по MQL5: Преобразование данных / StringFormat
Документация по MQL5: Преобразование данных / StringFormat
  • www.mql5.com
"SYMBOL_SWAP_MODE_INTEREST_CURRENT (в годовых процентах от цены инструмента на момент расчета свопа)" "SYMBOL_SWAP_MODE_REOPEN_CURRENT (переоткрытием позиции по цене закрытия +/- указанное количество пунктов)" "SYMBOL_SWAP_MODE_REOPEN_BID (переоткрытием позиции по текущей цене Bid +/- указанное количество пунктов)"
 
Yury Kulikov:

 Николай, а не пробовал заменить ByteToHex() на встроенную функцию StringFormat("%.2X",R)?


О, спасибо, Юрий. А я и не знал. Как всегда изобретал велосипед )).

 
Nikolai Semko:

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

Можете сами попробовать это реализовать.
Для помощи вот пару функций из моей реализации, которые отвечают за рисование окна выбора цвета:

Спасибо! Сейчас как раз и пытаюсь реализовать.

 
TheXpert:
Расскажите, как так получилось что среди модераторов ресурса, названного в честь языка программирования, нет ни одного профессионального программиста?

Oops

Программирую на C++ 25 лет без перерыва.

MQL II - с начала и до конца

MQL4 до 600 билда - с начала и до конца

MQL5 - с начала

За своё программирование на C++ получаю деньги, поэтому могу считаться профессиональным программистом

 
Slava:
вы штатный сотрудник metaquotes и практически не занимаетесь модерированием форума. И честно говоря, я думал у вас шильдик админ.
 
TheXpert:
вы штатный сотрудник metaquotes и практически не занимаетесь модерированием форума. И честно говоря, я думал у вас шильдик админ.

Представь что ты написал программу

Кому как не тебе отвечать на вопросы

 

3D Moving Avarage
Код завтра закину в КБ


 
Nikolai Semko:

3D Moving Avarage
Код завтра закину в КБ

Красиво !!!

Николай, скинь пожалуйста сюда листинг кода формирования радужной палитры цветов

Если будет в виде функции, то будет еще практичнее