Errores, fallos, preguntas - página 2361

 
Artyom Trishkin:

¿Tal vez debería aparecer en las características?

Intentaré diseñarlo.

 
Los comentarios no relacionados con este tema han sido trasladados a "Preguntas de los principiantes de MQL4 MT4 MetaTrader 4".
 

Estimados diseñadores del sitio web,

Aquí hay una captura de pantalla de los mensajes, por favor dígame qué interlocutor está seleccionado actualmente


Ya se me suben los ojos a la frente para entender a quién le escribo .....

Por favor, codifica por colores a los que no has respondido, a los que has respondido y un código de colores distinto para la persona a la que le envías el mensaje...

 
Vladimir Pastushak:

Estimados diseñadores del sitio web,

Aquí hay una captura de pantalla de los mensajes, por favor dígame qué interlocutor está seleccionado actualmente


Ya se me suben los ojos a la frente para entender a quién le escribo .....

Por favor, codifique por colores a los que no he respondido, a los que he respondido, y un código de colores distinto para la persona a la que estoy enviando el mensaje...

2

Sin embargo, estoy de acuerdo. No siempre se nota, hay poco contraste.

 
Vladimir Pastushak:

Aquí hay una captura de pantalla de los mensajes, por favor dígame qué interlocutor está seleccionado actualmente

en Chrome(71.0.3578.98) ok en FF (64) no es visible en absoluto
 
En general, sería bueno añadir contraste en todo el sitio
 

si es posible dereferir un puntero *CObject en MQL ?

He probado diferentes variantes, aquí hay un script de prueba, añado 3 elementos Myclass a la lista enlazada y luego cambio los valores de los campos CMyclass, funciona:

#include <Object.mqh>
#include <Arrays\List.mqh>
//+------------------------------------------------------------------+
class CMyclass:public CObject
  {
public:
   int               x;
   double            y;
   void              CMyclass(void):x(-1),y(-2.2) { }
  };
//+------------------------------------------------------------------+
void OnStart()
  {
   CList *base=new CList;
   CMyclass *result;
   for(int i=0;i<3;i++)
     {
      base.Add(new CMyclass);
      result=base.GetCurrentNode();
      result.x = 99;
      result.y = -555.5;
     }
   for(int i=0;i<3;i++)
     {
      result=base.GetNodeAtIndex(i);
      Print(result.x," : ",result.y);
     }
   delete base;
  }
//+------------------------------------------------------------------+

¿Puedo modificar campos de elementosCMyclass creados dinámicamente, sin puntero intermedioCMyclass *resultado?

Así:(CMyclass *)(base.GetCurrentNode()).x = 99;

PD: Sospecho que hay que usar typedef , pero hasta ahora no lo he conseguido

 
Igor Makanu:

si es posible dereferir un puntero *CObject en MQL ?

He probado diferentes variantes, aquí hay un script de prueba, añado 3 elementos Myclass a la lista enlazada y luego cambio los valores de los campos CMyclass, funciona:

¿Puedo modificar campos de elementosCMyclass creados dinámicamente, sin puntero intermedioCMyclass *resultado?

Así:(CMyclass *)(base.GetCurrentNode()).x = 99;

PD: Sospecho que hay que usar typedef , pero hasta ahora no lo he conseguido

No sé qué hace la biblioteca CList, pero yo hacía esto

#define  alive(node)  (CheckPointer(node)==POINTER_DYNAMIC)
#define  loopf(type, node)  for(type *o=alive(node)?node.First():NULL; alive(o); o=alive(o)?(alive(o.Next())?o.Next():NULL):NULL)
//.....
      loopf(COrder, corr){
         if((fabs(o.StopLoss()-sl)>=_point(o.Symbol())) || (fabs(o.TakeProfit()-tp)>=_point(o.Symbol()))){
            o.SLTP(sl, tp);
         }
      }
//.....
 
Ilya Malev:

No sé qué hace la biblioteca CList, pero yo hacía esto

Gracias, no es lo que estoy buscando, tu ejemplo es de hecho una conversión de tipo vía llamada de función

SZZ: No estoy acostumbrado a trabajar con punteros en MQL, estoy tratando de entenderlo. Este ejemplo parece ser simple y funciona, pero no he encontrado ninguna solución, cómo llevar el resultadoGetCurrentNode () -->CObject * a mi tipoCMyclass.... Porsupuesto, puedo usar el constructorCMyclass, pero espero que sea posible encontrar una solución limpia en MQL

 
Igor Makanu:

Gracias, no es lo que busco, tu ejemplo es de hecho una conversión de tipo vía llamada de función

SZZ: No estoy acostumbrado a trabajar con punteros en MQL, estoy tratando de entender este sencillo y funcional ejemplo, pero no he encontrado ninguna solución para llevar el resultadoGetCurrentNode () -->CObject * a mi tipoCMyclass.... Porsupuesto, puedo usar elconstructorCMyclass, pero espero que haya una solución inteligente de conversión de tipos en MQL

No tengo funciones ahí, mi problema es el que has descrito. Mi clase base es CNode ( que tiene métodos Prev(), Next() etc.) El bucle llama a los campos de COrder, que es su descendiente. El bucle se declara en defines 1 vez y luego se utiliza en todas partes.