Erreurs, bugs, questions - page 1370

 
Erreur de compilation
class A {
        void f( int a, long b ) {}
        void f(        long b ) {}
        void g() const;
};
void A::g() const
{
        int a;
        long b;
           f( a, b ); //(1)//error 'f' - no one of the overloads can be applied to the function call 
	A::f( a, b ); //(2)//нет сообщения об ошибке
}

Soit l'erreur est là, soit elle ne l'est pas. Il n'y a pas de différence significative entre (1) et (2).

 

Voici le code

#property strict
#include <Canvas/Canvas.mqh> CCanvas canvas;
void OnTick()
  {
   string ObjName="test";
   ObjectDelete(0,ObjName);
   if(ObjectFind(0,ObjName)==-1)
     {
      canvas.CreateBitmapLabel(ObjName,100,100,150,150,COLOR_FORMAT_ARGB_NORMALIZE);
      canvas.Erase(ColorToARGB(clrNONE,0));
      canvas.FontSet("Verdana",22);
      canvas.TextOut(10,10,"EURUSD",ColorToARGB(clrBlue,255));
     }
   uchar z=255;

   while(z>0)
     {
      canvas.TransparentLevelSet(z);
      canvas.Update(true);
      z-=5;
      Sleep(50);
     }
  }

Je veux faire du texte translucide, mais le code s'entête à dessiner du texte et un carré, il y a un changement de couleur en douceur dans le code...

Carré avec canvas.Erase(ColorToARGB(clrNONE,0)) ; blanc avec canvas.Erase(0) ; noir....

Qu'est-ce que je fais de mal ou comment rendre le texte translucide sans carrés....

 
Vladimir Pastushak:

Voici le code

Je veux faire du texte translucide, mais le code s'entête à dessiner du texte et un carré, il y a un changement de couleur en douceur dans le code...

Carré à canvas.Erase(ColorToARGB(clrNONE,0)) ; blanc à canvas.Erase(0) ; noir....

Qu'est-ce que je fais de mal ou comment rendre le texte translucide sans carrés....

Pourquoi changez-vous sans cesse la transparence ?

#property strict #include <Canvas/Canvas.mqh> CCanvas canvas; void OnTick()   {    string ObjName="test";    ObjectDelete(0,ObjName);    if(ObjectFind(0,ObjName)==-1)      {       canvas.CreateBitmapLabel(ObjName,100,100,150,150,COLOR_FORMAT_ARGB_NORMALIZE);       canvas.Erase(ColorToARGB(clrNONE,0));       canvas.FontSet("Verdana",22,FW_BOLD);       canvas.TextOut(10,10,"EURUSD",ColorToARGB(clrBlue,160));

canvas.Update();      }    /*uchar z=255;    while(z>0)      {       canvas.TransparentLevelSet(z);       canvas.Update(true);       z-=5;       Sleep(50);      }*/   }

 
Alexey Navoykov:
J'aimerais connaître la perspective d'introduire la propriété (en tant que membre de la classe). J'ai posé cette question récemment, mais il n'y a pas eu de commentaires de la part des développeurs. Est-ce prévu, ou dois-je faire un sondage sur le forum pour savoir si cette fonctionnalité est nécessaire ?
Un sondage devrait être fait, je suis pour. Mais les propriétés devraient être aussi modernes en C#, mais pas dans les premières formes (ils en ont fait des normales après la version 2, n'est-ce pas ?).
 
Alexey Volchanskiy:
Il est nécessaire de faire un sondage, je suis pour. Mais cela devrait être comme les propriétés modernes de C#, mais pas dans les premières formes (ils ont fait des propriétés normales après la version 2, n'est-ce pas ?).

Je ne pense pas qu'il soit nécessaire de l'introduire dans ce langage, car cela ne fera qu'augmenter le nombre de bogues qu'il faudra des années pour éradiquer.

Il serait préférable d'implémenter un mécanisme normal d'autorisation étendue pour Linux, car si le serveur utilise le mécanisme d'autorisation étendue, il est impossible de se connecter au serveur sous Wine.

 

Pourquoi une méthode statique ne peut-elle pas accéder à une variable statique ?

class CLog
{
private:
   static int a;
public:
   static void A()
   {
      a = 3;
   }
};

Message du compilateur :

unresolved static variable 'CLog::a'    Logs.mqh        22      7
 
Vasiliy Sokolov:

Pourquoi on ne peut pas accéder à une variable statique depuis une méthode statique :

Essayez de placer une variable statique:

class CLog
{
private:
   static int a;
public:
   static void A()
   {
      a = 3;
   }
};
int CLog::a;
 
Artem Temnikov:

Essayez de placer une variable statique:

Ça a marché ! Merci.
 

Chers développeurs !

OS Linux Mint 17.1, le terminal a été installé sous Wine 1.7.35 (MetaEditor 1154). Impossible d'ouvrir l'aide en appuyant sur la touche F1. Impossible également d'ouvrir l'aide par le menu -> aide. Que dois-je faire dans Wine pour ouvrir l'aide par F1 ?

 

Chers développeurs, ne passez pas à côté :)

La plateforme de négociation est MetaTrader 4. Le processus d'optimisation des EA est une exécution avec différents paramètres, qui sont spécifiés dans les paramètres d'entrée de l'EA (input, sinput ou extern). Je veux savoir, à chaque itération de l'optimiseur, quelles variables déclarées sur la portée globale sont recréées (réinitialisées) ? Ou bien ce qui est déclaré globalement est créé une fois et vit jusqu'à la fin de tout le processus d'optimisation ?