La toile est cool ! - page 62

 
Nikolai Semko:

Quelque chose comme ça ?



Nikolaï, le code d'exemple sera-t-il disponible ? :)

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

Nikolaï, le code d'exemple sera-t-il disponible ? :)

Le code est encore brut. Je l'ai fait il y a un an et demi pour voir à quoi ça pouvait ressembler.
Lorsque je l'aurai mis en œuvre correctement, j'ajouterai cette fonctionnalité à iCanvas, si je suis toujours présent sur le forum à ce moment-là. Je n'ai pas le temps de le faire maintenant.

Vous pouvez essayer de le mettre en œuvre vous-même.
Pour vous aider, voici quelques fonctions de mon implémentation, qui sont responsables de l'affichage de la fenêtre de sélection des couleurs :

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);
  }
 

On dirait que les seules personnes qui restent sur le forum sont les pleurnichards et les nerds. Et où sont ceux qui étaient prêts pour les exploits mql... ?

Nikolay est bon ! Il démontre joliment les capacités de mql. J'ajouterais un titre de branche - La toile est facile !

Et en fait :) Nikolay, as-tu essayé de remplacer ByteToHex() par la fonction intégrée StringFormat("%.2X",R) ?


p.s. Le langage et l'environnement d'exécution ont atteint leur perfection, et parfois j'ai envie de dire : - Stop ! :)

Документация по 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:

Nikolaï, avez-vous essayé de remplacer ByteToHex() par la fonction intégrée StringFormat("%.2X",R) ?


Oh, merci, Yuri. Je ne le savais pas. Inventé un vélo comme toujours ;)).

 
Nikolai Semko:

Le code est encore brut. Je l'ai fait il y a un an et demi pour voir à quoi ça pouvait ressembler.
Lorsqu'elle sera correctement mise en œuvre, j'ajouterai cette fonctionnalité à iCanvas, si je suis toujours présent sur le forum à ce moment-là. Je n'ai pas le temps de le faire maintenant.

Vous pouvez essayer de le mettre en œuvre vous-même.
Pour vous aider, voici quelques fonctions de mon implémentation, qui sont responsables de l'affichage de la fenêtre de sélection des couleurs :

Merci ! J'essaie de le mettre en œuvre en ce moment même.

 
TheXpert:
Dites-moi comment il se fait qu'il n'y ait pas de programmeurs professionnels parmi les modérateurs d'une ressource qui porte le nom d'un langage de programmation ?

Oups

Je programme en C++ depuis 25 ans sans interruption.

MQL II - du début à la fin

MQL4 - jusqu'à la construction de 600 - du début à la fin

MQL5 - depuis le début

Je reçois de l'argent pour ma programmation en C++, je peux donc être considéré comme un programmeur professionnel.

 
Slava:
vous êtes un membre du personnel de metaquotes et n'avez que peu ou pas d'implication dans la modération du forum. Et honnêtement, je pensais que vous aviez une plaque d'administrateur.
 
TheXpert:
vous êtes un membre du staff de metaquotes et vous ne modérez pratiquement pas le forum. Et honnêtement, je pensais que vous aviez une plaque d'administrateur.

Imaginez que vous avez écrit un programme

Qui mieux que vous peut répondre aux questions ?

 

Avarage mobile 3D
Je vais mettre le code dans le QB demain.


 
Nikolai Semko:

3D Moving Avarage
Je mettrai le code dans le QB demain.

Magnifique ! !!

Nikolaï, jetez le listing du code de la formation de la palette de couleurs de l'arc-en-ciel ici.

Si c'est sous la forme d'une fonction, ce sera encore plus pratique
Raison: