Errori, bug, domande - pagina 1370

 

A100:

...

Come nell'esempio https://www.mql5.com/ru/docs/files/filefindfirst

e la cartella OK contiene altre sottocartelle.
Riprodotto nel mio. Come soluzione temporanea, la cartella è identificata dal "\" alla fine del suo nome.
 
Errore di compilazione
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)//нет сообщения об ошибке
}

O l'errore c'è o non c'è. Non c'è una differenza significativa tra (1) e (2)

 

Ecco il codice

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

Voglio fare del testo traslucido, ma il codice si ostina a disegnare del testo e un quadrato, c'è un cambio di colore uniforme nel codice...

Quadrato con canvas.Erase(ColorToARGB(clrNONE,0)); bianco con canvas.Erase(0); nero....

Cosa sto sbagliando o come rendere il testo traslucido senza squares....

 
Vladimir Pastushak:

Ecco il codice

Voglio fare del testo traslucido, ma il codice si ostina a disegnare del testo e un quadrato, c'è un cambio di colore uniforme nel codice...

Quadrato a canvas.Erase(ColorToARGB(clrNONE,0)); bianco a canvas.Erase(0); nero....

Cosa sto sbagliando o come rendere il testo traslucido senza squares....

Perché continui a cambiare la trasparenza?

#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:
Mi piacerebbe conoscere la prospettiva di introdurre la proprietà (come membro della classe). Ho fatto questa domanda recentemente, ma non ci sono stati commenti da parte degli sviluppatori. È previsto, o devo fare un sondaggio sul forum per sapere se questa caratteristica è necessaria?
Bisognerebbe fare un sondaggio, io sono favorevole. Ma le proprietà dovrebbero essere moderne in C#, ma non nei primi moduli (ne hanno fatte di normali dopo la versione 2, vero?).
 
Alexey Volchanskiy:
È necessario fare un sondaggio, io sono a favore. Ma dovrebbe essere come le moderne proprietà di C#, ma non nelle prime forme (hanno fatto le proprietà normali dopo la versione 2, no?).

Non penso che questo debba essere introdotto in questa lingua, poiché aumenterà solo il numero di bug che richiederanno anni per essere eliminati.

Sarebbe meglio implementare un normale meccanismo di autorizzazione estesa per Linux, perché se il server usa il meccanismo di autorizzazione estesa, è impossibile connettersi al server sotto Wine.

 

Perché un metodo statico non può accedere a una variabile statica:

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

Messaggio del compilatore:

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

Perché non si può accedere a una variabile statica da un metodo statico:

Prova a mettere una variabile statica:

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

Prova a mettere una variabile statica:

Ha funzionato! Grazie.
 

Cari sviluppatori!

Linux Mint 17.1 OS, il terminale è stato installato sotto Wine 1.7.35 (MetaEditor 1154). Non è possibile aprire l'aiuto tramite F1, inoltre non è possibile aprire l'aiuto tramite menu -> aiuto. Cosa devo fare in Wine per aprire l'aiuto con F1?

Motivazione: