Fehler, Irrtümer, Fragen - Seite 1376

 
Vladimir Pastushak:

Wir stellen alle Parameter ein und alle Parameter werden gespeichert, außer dem Fetttyp...

Die Farbgröße wird nach dem erneuten Laden gespeichert, nur der Fetttyp wird gelöscht...

Ja, richtig, OBJPROP_TOOLTIP wird beim Schließen des Terminals gelöscht. Aber das Objekt selbst bleibt bestehen. Wenn Sie versuchen, ein solches Objekt direkt zu erstellen, können Sie es nicht erstellen und daher auch seine Parameter und insbesondere OBJPROP_TOOLTIP nicht ändern.
 
Vladimir Pastushak:

Wir stellen alle Parameter ein und alle Parameter werden gespeichert, außer dem Fetttyp...

Die Farbgröße wird nach dem erneuten Laden gespeichert, nur der Typ Tol wird gelöscht...

Mach das Gleiche und vergiss es wie einen schlechten Traum ;)

//+------------------------------------------------------------------+
//| Создает кнопку                                                   |
//+------------------------------------------------------------------+
   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:

Mach das Gleiche und vergiss es wie einen schlechten Traum ;)

Bei diesem Ansatz ändern sich die Eigenschaften der Schaltfläche bei jedem Häkchen...
 
Vladimir Pastushak:
Bei diesem Ansatz ändern sich die Eigenschaften der Schaltfläche bei jedem Häkchen...
Und Sie müssen die Schaltfläche einmal erstellen - bei OnInit.
 
Vladimir Pastushak:
Bei diesem Ansatz ändern sich die Eigenschaften der Schaltfläche bei jedem Häkchen...

Das ist seltsam. In meinem Fall ändern sie sich nicht bei jedem Tick, sondern bleiben so, wie ich sie brauche und wie ich sie einstelle, und ich erstelle die Schaltfläche immer dann, wenn ich sie brauche, nicht in OnInit(), wie Vladimir rät.

Ich sende der Schaltfläche immer den gewünschten Eigenschaftstyp, wenn ich ihn brauche.

 
Karputov Vladimir:
Erstellen Sie einmal eine Schaltfläche - bei OnInit.
Was ist, wenn die Anzahl der Schaltflächen dynamisch ist?
 
Vladimir Pastushak:
Und wenn die Anzahl der Schaltflächen dynamisch ist?

Schaffen Sie, wenn Sie es brauchen - es wird immer dann sein, wenn Sie es wollen. Sie brauchen keine Probleme zu erfinden - prüfen Sie sie. Trotzdem können Sie die Tooltips je nach Situation ändern. Die Schaltfläche wird jedoch nicht neu erstellt, sondern ihre Parameter werden entsprechend den neuen, an die Funktion übergebenen Parametern geändert.

ZS: Ich kann ein Video aufnehmen, in dem gezeigt wird, wie sich die Beschreibungen (Tooltips) eines Objekts in Abhängigkeit vom Zustand anderer Objekte ändern.

 
Artyom Trishkin:

Schaffen Sie, wenn Sie es brauchen - es wird immer dann sein, wenn Sie es wollen. Sie brauchen keine Probleme zu erfinden - prüfen Sie sie. Trotzdem können Sie die Tooltips je nach Situation ändern. Die Schaltfläche wird jedoch nicht neu erstellt, sondern ihre Parameter ändern sich entsprechend den neuen Parametern, die der Funktion übergeben werden.

SZZ: Ich kann ein Video aufnehmen, in dem gezeigt wird, wie sich die Beschreibungen (Tooltips) eines Objekts in Abhängigkeit vom Zustand anderer Objekte ändern.

Ich würde es mir gerne ansehen.
 
Vladimir Pastushak:
Ich würde es gerne sehen.
Nun, nicht heute Abend - es ist schon spät. Es ist Schlafenszeit.
 
Vladimir Pastushak:

Ich erstelle eine Schnittstelle mit Schaltflächen, wenn ich einen Tooltip erstelle. Wenn ich das Terminal neu starte, wird der Tooltip entfernt und ich muss ihn erneut eingeben...

Hier ist ein einfacher Code, der eine Schaltfläche mit einem Tooltip erstellt und nach dem Neustart verschwindet der Tooltip, versuchen Sie es...

Und so funktioniert es.

   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");

Darauf haben wir Sie bereits in Service Desk hingewiesen...