Errori, bug, domande - pagina 1376

 
Vladimir Pastushak:

Abbiamo impostato tutti i parametri e tutti i parametri sono salvati tranne il tipo di grasso...

Le dimensioni del colore sono tutte salvate dopo il ricaricamento, solo il tipo di grasso viene cancellato...

Sì, esatto. OBJPROP_TOOLTIP viene cancellato quando il terminale viene chiuso. Ma l'oggetto stesso rimane. Quando provate a creare direttamente un tale oggetto, non potete crearlo e quindi non potete cambiare i suoi parametri e OBJPROP_TOOLTIP in particolare.
 
Vladimir Pastushak:

Abbiamo impostato tutti i parametri e tutti i parametri sono salvati tranne il tipo di grasso...

La dimensione del colore viene salvata dopo aver ricaricato solo il tipo Tol viene cancellato...

Fai lo stesso e dimenticalo come un brutto sogno ;)

//+------------------------------------------------------------------+
//| Создает кнопку                                                   |
//+------------------------------------------------------------------+
   void CGraphClass::ButtonCreate(const long chart_id=0,               // ID графика
                     const string            name="Button",            // имя кнопки
                     const int               sub_window=0,             // номер подокна
                     const int               x=0,                      // координата по оси X
                     const int               y=0,                      // координата по оси Y
                     const int               width=50,                 // ширина кнопки
                     const int               height=18,                // высота кнопки
                     const ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER, // угол графика для привязки
                     const string            text="Button",            // текст
                     const string            font="Arial",             // шрифт
                     const int               font_size=10,             // размер шрифта
                     const color             clr=clrBlack,             // цвет текста
                     const color             back_clr=C'236,233,216',  // цвет фона
                     const color             border_clr=clrNONE,       // цвет границы
                     const string            tooltip="\n",             // описание объекта
                     const bool              state=false,              // нажата/отжата
                     const bool              back=false,               // на заднем плане
                     const bool              selection=false,          // выделить для перемещений
                     const bool              hidden=true,              // скрыт в списке объектов
                     const long              z_order=0)                // приоритет на нажатие мышью
     {
      if(ObjectFind(name)<0) ObjectCreate(chart_id,name,OBJ_BUTTON,sub_window,0,0);
      ObjectSetInteger(chart_id,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(chart_id,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(chart_id,name,OBJPROP_XSIZE,width);
      ObjectSetInteger(chart_id,name,OBJPROP_YSIZE,height);
      ObjectSetInteger(chart_id,name,OBJPROP_CORNER,corner);
      ObjectSetString(chart_id,name,OBJPROP_TEXT,text);
      ObjectSetString(chart_id,name,OBJPROP_FONT,font);
      ObjectSetInteger(chart_id,name,OBJPROP_FONTSIZE,font_size);
      ObjectSetInteger(chart_id,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_id,name,OBJPROP_BGCOLOR,back_clr);
      ObjectSetInteger(chart_id,name,OBJPROP_BORDER_COLOR,border_clr);
      ObjectSetInteger(chart_id,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_id,name,OBJPROP_STATE,state);
      ObjectSetInteger(chart_id,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_id,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_id,name,OBJPROP_HIDDEN,hidden);
      ObjectSetString(chart_id,name,OBJPROP_TOOLTIP,tooltip);
      ObjectSetInteger(chart_id,name,OBJPROP_ZORDER,z_order);
     }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Fai lo stesso e dimenticalo come un brutto sogno ;)

Con questo approccio, le proprietà del pulsante cambieranno ad ogni spunta...
 
Vladimir Pastushak:
Con questo approccio, le proprietà del pulsante cambieranno ad ogni spunta...
E dovete creare il pulsante una volta sola - a OnInit.
 
Vladimir Pastushak:
Con questo approccio, le proprietà del pulsante cambieranno ad ogni spunta...

Questo è strano. Nel mio caso, non cambiano ad ogni tick, ma rimangono come ho bisogno e impostati da me, e creo sempre il pulsante quando ne ho bisogno, non in OnInit(), come consiglia Vladimir.

Mando sempre al pulsante il tipo di proprietà che voglio quando ne ho bisogno.

 
Karputov Vladimir:
Creare un pulsante una volta sola - a OnInit.
E se il numero di pulsanti è dinamico?
 
Vladimir Pastushak:
E se il numero di pulsanti è dinamico?

Crea quando ne hai bisogno - sarà sempre quando vuoi tu. Non c'è bisogno di inventare problemi - controlla. In ogni caso, sarete in grado di cambiare i tooltip al volo, a seconda della situazione. Ma il pulsante non verrà ricreato, ma i suoi parametri cambieranno secondo i nuovi parametri passati alla funzione.

ZS. Posso registrarti un video di come le descrizioni (tooltips) di un oggetto cambiano a seconda dello stato di altri oggetti.

 
Artyom Trishkin:

Crea quando ne hai bisogno - sarà sempre quando vuoi tu. Non c'è bisogno di inventare problemi - controlla. In ogni caso, sarete in grado di cambiare i tooltip al volo, a seconda della situazione. Ma il pulsante non sarà creato di nuovo, ma i suoi parametri cambieranno in base ai nuovi parametri passati alla funzione.

SZZ. Posso registrarti un video di come le descrizioni (tooltips) di un oggetto cambiano a seconda dello stato di altri oggetti.

Sarei felice di guardarlo.
 
Vladimir Pastushak:
Mi piacerebbe vederlo.
Beh, non stasera - è tardi. È ora di andare a letto.
 
Vladimir Pastushak:

Creo un'interfaccia, con dei pulsanti, quando creo un tooltip. Quando riavvio il terminale, il tooltip viene rimosso e devo scriverlo di nuovo...

Ecco un semplice codice che crea un pulsante con un tooltip e dopo il riavvio il tooltip scompare, provatelo...

Ecco come funziona.

   if(ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0))
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
      ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
      ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
      ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
     }
   ObjectSetString(chart_ID,name,OBJPROP_TOOLTIP,"ROP_TOOLTIP");

Questo vi è già stato fatto notare in Service Desk...