Erreurs, bugs, questions - page 1513

 
zaskok3:

Lequel est le meilleur, du point de vue des performances, comme ceci :

ou par la surcharge des méthodes?

vous ne verrez aucune différence en termes de performances - les deux solutions ont leur place :)
 
coderex:
vous ne verrez pas de différence en termes de performances - les deux solutions ont leur place :)

Merci ! Une autre question :

Quel est l'intérêt des champs const dans une structure ? De telles structures ne peuvent même pas être transmises (jurons du compilateur ou débordements de pile) ?

#property strict 

struct STRUCT
{
  const int Num;
  
  STRUCT( const int iNum = 0 ) : Num(iNum) // Если затереть " = 0", то будет ошибка компиляции: 'STRUCT' - wrong parameters count 
  {
  }
  
/*
// Так получается обойти ошибки компиляции, но на этапе выполнения: Stack overflow   
  STRUCT operator = ( STRUCT &Struct )
  {
    STRUCT Res(Struct.Num);
    
    return(Res);
  }
*/
};

const STRUCT GetStruct( const int Num = 0 )
{
  STRUCT Struct(Num);
  
  return(Struct); // 'return' - not allowed for objects with protected members or inheritance 
}

void OnStart( void )
{
  Print(GetStruct(1).Num);
  
  return;
}


Lasurcharge de l'opérateur d'affectation pour les structures est en fait impossible (elle serait logique en raison de la récursion infinie). Alors pourquoi des champs constants dans une structure ?

 
Karputov Vladimir:

Sous Windows 10 x64, je n'ai jamais rencontré cette erreur sur la version 1241. Après la commande "Déployer", la fenêtre graphique se déploie complètement, sans aucun trou :

Vous avez probablement modifié certains paramètres de votre système d'exploitation (vous avez peut-être modifié les paramètres par défaut de votre système d'exploitation ou nettoyé le registre ou autre...).

Lorsque vous faites glisser le verre avec la souris, appuyez sur "Shift", "Ctrl" ou "Alt" à ce stade.

Mon meilleur conseil est d'écrire au serviceDesk avec une description détaillée, avec son propre code (qui montre les tics), avec des captures d'écran.

>> Vous avez probablement modifié certains paramètres de votre système d'exploitation (vous aimez peut-être couper les fonctions standard de votre système d'exploitation, ou nettoyer le registre, etc...).

>> Je ne suis pas dans ce genre de choses, les systèmes sont propres.

>> Ici je peux vous conseiller avec une description détaillée, avec votre code (qui montre les ticks), avec des captures d'écran pour faire une application à ServiceDesk.

Et c'est où ? Je pensais que cette branche était un serveur.

 

Si j'utilise #include pour inclure un fichier mqh qui contient quelque chose de similaire dans l'indicateur :

int GetIndicatorBuffers( void )
{
  return(indicator_buffers); // 'indicator_buffers' - undeclared identifier
}

il n'y a pas d'erreurs au stade de la compilation de l'indicateur lui-même. Mais il se produit avec mqh séparément (voir ci-dessus).

Comment puis-je trouver la valeur de cet indicateur de propriété dans MT4, afin que le compilateur ne se plaigne pas plus d'une fois dans le mqh branché ?

 

J'essaie de faire en sorte que l'application fonctionne de manière identique dans MQL5 et MQL4.

Je soupçonne qu'en introduisant les variables sinput dans MQL4, ils ont oublié d'ajouter les fonctionsParameterSetRange() etParameterGetRange() au langage.

Ils apparaissent dans la documentation de MQL4 sous le nom deParameterSetRange() etParameterGetInput()-https://docs.mql4.com/basis/variables/inputvariables#sinput.

mais le compilateur ne les accepte pas.

Malheureusement, sans ces fonctions, tout le plaisir que procurent les variables sinput est perdu.

Input Variables - MQL4 Documentation
Input Variables - MQL4 Documentation
  • docs.mql4.com
Input Variables - MQL4 Documentation - MQL4 Documentation
 
zaskok3:

Merci ! Une autre question :

Quel est l'intérêt des champs const dans une structure ? De telles structures ne peuvent même pas être transmises (jurons du compilateur ou débordements de pile) ?


Lasurcharge de l'opérateur d'affectation pour les structures est virtuellement impossible (cela aurait un sens à cause de la récursion infinie). Alors pourquoi des champs constants dans une structure ?

Profitez-en :

#property strict

struct STRUCT
{
  const int Num;
  
  STRUCT( const int iNum  ) : Num( iNum )
  {
  }
  
  STRUCT( const STRUCT& Struct ) : Num( Struct.Num )
  {
  }
};

const STRUCT GetStruct( const int Num = 0 )
{
  STRUCT Struct( Num );
  return Struct;
}
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
   Print( GetStruct(1).Num );
}
//+------------------------------------------------------------------+
 
Koldun Zloy:

Profitez-en :

C'est agréable d'aller droit au but, merci ! Je me demande encore pourquoi je ne l'ai pas compris moi-même avant de surcharger le constructeur, mais que je suis passé par l'opérateur d'affectation. Après tout, la solution est évidente !
 

J'ai déplacé le dossier du terminal MT4 sur un autre disque. Auparavant, je l'exécutais avec la clé portable. J'ai fait la même chose cette fois-ci.

Le terminal s'est immédiatement connecté au serveur. Dans le passé, lorsque je déplaçais un dossier de terminal, les mots de passe n'étaient pas sauvegardés et je devais les saisir à nouveau. Maintenant (bâtiment 950), cela n'arrive pas.

Est-ce normal (et seulement pour moi) ?

 
zaskok3:

Quel meilleur moyen, du point de vue de la performance, est celui-ci :

La surcharge bien sûr.
 

Note aux programmeurs web.

Lorsque vous écrivez un commentaire sur le forum, vous pouvez voir dans l'éditeur HTML qu'un titre avec le surnom est ajouté pour l'auteur cité :

<span style="color:#42639C;" title="server"> Server Muradasilov</span>

C'est-à-dire que la solution est tout à fait correcte, en passant la souris sur le nom de l'auteur du texte cité après publication, vous pouvez voir le surnom également. Cela permet de stocker le surnom de l'auteur dans le texte du message lui-même.

Mais l'attribut title est supprimé lorsque vous enregistrez le message, il n'est pas présent dans le message publié. SD#1263217(demande sans réponse depuis plus de six mois maintenant)

Un travail de 10 minutes, ainsi qu'un style permettant d'enregistrer l'attribut title.