エラー、バグ、質問 - ページ 1376

 
Vladimir Pastushak:

すべてのパラメータを設定し、脂肪の種類を除くすべてのパラメータが保存されているのですが...。

リロードすると、カラーサイズはすべて保存され、ファットタイプだけが削除される...。

OBJPROP_TOOLTIP は、端末を閉じた ときに削除されます。しかし、モノ自体は残ります。このようなオブジェクトを直接作成しようとすると、作成できないため、特にパラメータやOBJPROP_TOOLTIPを変更することができない。
 
Vladimir Pastushak:

すべてのパラメータを設定し、脂肪型を除くすべてのパラメータが保存されているのですが...。

リロード後、カラーサイズは全て保存され、Tolタイプのみ削除される...。

同じようにして、悪い夢のように忘れてください ;)

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

同じようにして、悪い夢のように忘れてください ;)

この方法では、ボタンのプロパティは、ティック ごとに変更されます...
 
Vladimir Pastushak:
この方法では、ボタンのプロパティは、ティックごとに変更されます...
そして、OnInitで一度だけボタンを作成する必要があります。
 
Vladimir Pastushak:
この方法では、ボタンのプロパティは、ティックごとに変更されます...

それは不思議ですね。私の場合、それらはtick 毎に変化するのではなく、必要な時に必要なだけ設定します。また、Vladimirがアドバイスするように、OnInit()内ではなく、必要な時に常にボタンを作成します。

私はいつも必要な時に必要なプロパティタイプをボタンに送ります。

 
Karputov Vladimir:
ボタンを一度作成する - OnInitで。
ボタンの数が動的な場合はどうするのですか?
 
Vladimir Pastushak:
また、ボタンの数がダイナミックであれば?

必要な時に創る-それは必ず、あなたが望む時になるのです。問題を捏造する必要はない、調べればいいのだ。いずれも、状況に応じて、その場でツールチップを変更できるようになります。しかし、ボタンは再作成されませんが、そのパラメータは関数に渡された新しいパラメータに従って変更されます。

ZS.あるオブジェクトの説明(ツールチップ)が、他のオブジェクトの状態によって変化する様子を動画で記録することができます。

 
Artyom Trishkin:

必要な時に創る-それは必ず、あなたが望む時になるのです。問題を捏造する必要はない、調べればいいのだ。いずれも、状況に応じて、その場でツールチップを変更できるようになります。しかし、ボタンが新しく作られるわけではなく、関数に渡された新しいパラメータに応じて、そのパラメータが変更されます。

SZZ. あるオブジェクトの説明文(ツールチップ)が、他のオブジェクトの状態によって変化する様子を動画で記録しておきます。

見ていただけたらうれしいです。
 
Vladimir Pastushak:
ぜひ見てみたいですね。
まあ、今夜はダメですね、もう遅いので。寝る時間だ。
 
Vladimir Pastushak:

ボタンなどのインターフェイスを作成する際、ツールチップを作成すると、ターミナルを再起動するとツールチップが削除され、再度書き込まなければなりません...。

ツールチップ付きのボタンを作成し、再起動後にツールチップが消える簡単なコードです、試してみてください...。

その仕組みはこうだ。

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

これは、すでにサービスデスクで指摘されていることですが...。