ライブラリ: EasyAndFastGUIグラフィックインターフェース作成ライブラリ - ページ 14 1...789101112131415161718192021...45 新しいコメント Oleksii Chepurnyi 2018.12.06 22:42 #131 こんにちは。 //+------------------------------------------------------------------+ //| 要素を描画するためのキャンバスを作成する。 //+------------------------------------------------------------------+ bool CElement::CreateCanvas(const string name,const int x,const int y, const int x_size,const int y_size,ENUM_COLOR_FORMAT clr_format=COLOR_FORMAT_ARGB_NORMALIZE) { //--- サイズ調整 int xsize =(x_size<1)? 50 : x_size; int ysize =(y_size<1)? 20 : y_size; //--- 最後のエラーをリセットする ::ResetLastError(); //--- オブジェクトの作成 if(!m_canvas.CreateBitmapLabel(m_chart_id,m_subwin,name,x,y,xsize,ysize,clr_format)) { ::Print(__FUNCTION__," > アイテムを描画するためのキャンバスの作成に失敗しました。+m_class_name+"): ",::GetLastError()); return(false); } //--- 最後のエラーをリセットする ::ResetLastError(); //--- 基本クラスへのポインタを取得する。 if(!m_canvas.Attach(m_chart_id,name,clr_format)) { ::Print(__FUNCTION__," > チャートへの描画キャンバスのアタッチに失敗しました:",::GetLastError()); return(false); } //--- プロパティ ::ObjectSetString(m_chart_id,m_canvas.ChartObjectName(),OBJPROP_TOOLTIP,"\n"); ::ObjectSetInteger(m_chart_id,m_canvas.ChartObjectName(),OBJPROP_CORNER,m_corner); ::ObjectSetInteger(m_chart_id,m_canvas.ChartObjectName(),OBJPROP_SELECTABLE,false); //--- フォーム以外のすべての要素は、メイン要素よりも優先順位が高い。 Z_Order((dynamic_cast<CWindow*>(&this)!=NULL)? 0 : m_main.Z_Order()+1); //--- 座標 m_canvas.X(x); m_canvas.Y(y); //--- 寸法 m_canvas.XSize(x_size); m_canvas.YSize(y_size); //--- 終点からのインデント m_canvas.XGap(CalculateXGap(x)); m_canvas.YGap(CalculateYGap(y)); return(true); } CreateBitmapLabel -グラフィック・リソースを作成する。 Attach - 同じリソースを読み込み、また同じリソースに書き込む。 それとも何か間違って理解しているのでしょうか? Oleksii Chepurnyi 2018.12.13 04:34 #132 再びこんにちは :) class CMouse { ............... //--- (1) カーソルのあるウィンドウの番号、(2) X座標に対応する時間を返す、 // (3) Y座標に対応するレベル(価格 int SubWindowNumber(void) const { return(m_subwin); } datetime Time(void) const { return(m_time); } double Level(void) const { return(m_level); } タイム&レベルはどこかで使われているのでしょうか?どこにも見当たらないのですが・・・。 SubWindowNumberは何に使うのですか? 私が言いたいのは、ChartXYToTimePriceは マウスを動かすたびに実行するにはかなりコストのかかる操作だということです。 Anatoli Kazharski 2018.12.13 08:40 #133 Oleksii Chepurnyi:コメントにすべて書いてある。付け加えることは何もない。 Oleksii Chepurnyi 2018.12.13 14:03 #134 Anatoli Kazharski:コメントにすべて書いてある。付け加えることは何もない。もしコード内のコメントということであれば、そこですべてが明らかになりますが、質問の趣旨はそこではありません) Anatoli Kazharski 2018.12.13 14:14 #135 Oleksii Chepurnyi:...私が言いたいのは、ChartXYToTimePriceは、マウスを動かすたびに実行するにはかなりコストのかかる操作だということです...GUIがメイン・ウィンドウにない場合、相対座標を取得する。 Oleksii Chepurnyi 2018.12.13 15:03 #136 Anatoli Kazharski:GUIがメインウインドウにないときの相対座標を求める。 つまり、GUIがメインウィンドウにないときだけ計算すればいいのでは?:)それよりも、なぜAttachなのかに興味があります。私が理解する限り、それはCreateBitmapLabelのアクションを繰り返します。 Anatoli Kazharski 2018.12.13 15:12 #137 Oleksii Chepurnyi: だから、GUIがメイン・ウィンドウにないときだけ計算すればいいのでは?:)メインのGUIウィンドウがチャートのサブウィンドウにあり、ダイアログがメインウィンドウにある場合のバリエーションもあります。 それよりも、なぜAttachなのかに興味があります。私が理解している限りでは、CreateBitmapLabel のアクションを繰り返します。 CCanvas::Attach() メソッドのコードがあります: //+------------------------------------------------------------------+ //| ビットマップ・リソースで新しいオブジェクトをアタッチする。 //+------------------------------------------------------------------+ bool CCanvas::Attach(const long chart_id,const string objname,ENUM_COLOR_FORMAT clrfmt=COLOR_FORMAT_XRGB_NOALPHA) { if(OBJ_BITMAP_LABEL==ObjectGetInteger(chart_id,objname,OBJPROP_TYPE)) { string rcname=ObjectGetString(chart_id,objname,OBJPROP_BMPFILE); rcname=StringSubstr(rcname,StringFind(rcname,"::")); if(ResourceReadImage(rcname,m_pixels,m_width,m_height)) { m_chart_id=chart_id; m_objname=objname; m_rcname=rcname; m_format=clrfmt; m_objtype=OBJ_BITMAP_LABEL; //--- 成功 return(true); } } //--- 失敗 return(false); } Oleksii Chepurnyi 2018.12.13 15:31 #138 Anatoli Kazharski:CCanvas::Attach() メソッドのコードがあります:CCanvas::Attach()メソッドのコードがあります。それらを見た。そして、私が理解した限りでは、CreateBitmapLabel は空のリソースを作成し、Attach はそのリソース(any)を読み込んで m_pixels に書き込む。そして、上に書いたように、nameという名前でリソースを作成し(CreateBitmapLabel)、同じリソースを読み込んで(Attach)、読み込んだものをまた同じm_pixelsに書き込みます。 それとも何か間違って理解しているのでしょうか? PS 実験的には、Attachなしですべてうまくいきました :) Anatoli Kazharski 2018.12.13 15:34 #139 Oleksii Chepurnyi:...PS 実験的にAttachなしですべてがうまくいった :)本当に?また何か変化があったんだね。確かに以前はうまくいかなかった。 チャートからGUIを削除したら、オブジェクトが削除された? Oleksii Chepurnyi 2018.12.13 16:19 #140 Anatoli Kazharski:本当ですか?また変化があったんだね。以前は確かに何かがうまくいっていなかった。グラフからGUIを削除した後、オブジェクトは削除された?何もかもきれいになったように見えますが...) ファイル: 35.png 11 kb 36.png 6 kb 1...789101112131415161718192021...45 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。
CreateBitmapLabel -グラフィック・リソースを作成する。
Attach - 同じリソースを読み込み、また同じリソースに書き込む。
それとも何か間違って理解しているのでしょうか?
再びこんにちは :)
タイム&レベルはどこかで使われているのでしょうか?どこにも見当たらないのですが・・・。
SubWindowNumberは何に使うのですか?
私が言いたいのは、ChartXYToTimePriceは マウスを動かすたびに実行するにはかなりコストのかかる操作だということです。
コメントにすべて書いてある。付け加えることは何もない。
コメントにすべて書いてある。付け加えることは何もない。
もしコード内のコメントということであれば、そこですべてが明らかになりますが、質問の趣旨はそこではありません)
...
私が言いたいのは、ChartXYToTimePriceは、マウスを動かすたびに実行するにはかなりコストのかかる操作だということです...
GUIがメイン・ウィンドウにない場合、相対座標を取得する。
GUIがメインウインドウにないときの相対座標を求める。
それよりも、なぜAttachなのかに興味があります。私が理解する限り、それはCreateBitmapLabelのアクションを繰り返します。
だから、GUIがメイン・ウィンドウにないときだけ計算すればいいのでは?:)
メインのGUIウィンドウがチャートのサブウィンドウにあり、ダイアログがメインウィンドウにある場合のバリエーションもあります。
それよりも、なぜAttachなのかに興味があります。私が理解している限りでは、CreateBitmapLabel のアクションを繰り返します。
CCanvas::Attach() メソッドのコードがあります:
CCanvas::Attach() メソッドのコードがあります:
CCanvas::Attach()メソッドのコードがあります。それらを見た。そして、私が理解した限りでは、CreateBitmapLabel は空のリソースを作成し、Attach はそのリソース(any)を読み込んで m_pixels に書き込む。そして、上に書いたように、nameという名前でリソースを作成し(CreateBitmapLabel)、同じリソースを読み込んで(Attach)、読み込んだものをまた同じm_pixelsに書き込みます。
それとも何か間違って理解しているのでしょうか?
PS 実験的には、Attachなしですべてうまくいきました :)
...
PS 実験的にAttachなしですべてがうまくいった :)
本当に?また何か変化があったんだね。確かに以前はうまくいかなかった。
チャートからGUIを削除したら、オブジェクトが削除された?
本当ですか?また変化があったんだね。以前は確かに何かがうまくいっていなかった。
グラフからGUIを削除した後、オブジェクトは削除された?
何もかもきれいになったように見えますが...)