ライブラリ: イージーキャンバス - ページ 14 1...78910111213141516171819 新しいコメント Mighty7 2021.01.06 03:19 #131 Mighty7:ありがとうと言わなければならない。これで完璧だ。最高の仕事だ。 最後の質問に答えていただけますか?左右にシフトするのと、上下にシフトするのと、どちらが速いですか?ありがとうございました。 Nikolai Semko 2021.01.06 03:56 #132 Mighty7:最後の質問に答えてください。左右にシフトするのと、上下にシフトするのと、どちらが速いですか?ありがとうございました。 上下にシフトする方が、左右にシフトするよりもわずかに速い。標準的なFullHDスクリーンウィンドウの平均的なコンピューターでは、シフト全体で約0.3ミリ秒(1/3000秒)かかります。 上下シフトは左右シフトよりわずかに速い。標準的なFullHDウィンドウの平均的なコンピュータでは、シフト全体に約0.3ミリ秒(1/3000秒)かかります。 Mighty7 2021.01.06 11:01 #133 Nikolai Semko:シフトダウンとシフトアップは、左右よりもわずかに速い。標準的なFullHDスクリーンウィンドウの平均的なコンピュータでは、シフト全体に約0.3ミリ秒(1/3000秒)かかります。上下シフトは左右シフトよりわずかに速い。標準的なFullHDウィンドウの平均的なコンピュータでは、シフト全体に約0.3ミリ秒(1/3000秒)かかります。 ありがとうございました。 Oleksii Chepurnyi 2021.07.16 08:44 #134 void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) { if (sparam=="0") W.MouseStatus=NO_PRESSED; else if (sparam=="1") W.MouseStatus=LEFT_BUTTON_PRESSED; else if (sparam=="2") W.MouseStatus=RIGHT_BUTTON_PRESSED; else if (sparam=="3") W.MouseStatus=LEFT_AND_RIGHT_BUTTONS_PRESSED; else W.MouseStatus=KEY_PRESSED; W.IdEvent=id; W.lparam=lparam; if(id==CHARTEVENT_MOUSE_MOVE) { W.MouseX=(int)lparam; W.MouseY=(int)dparam; W.MouseBar=(double)W.Left_bar+1-(double)W.MouseX/(double)W.dx_pix; W.MouseSubWin=XYToTimePrice(W.MouseX,W.MouseY,W.MouseTime,W.MousePrice,id); if(W.MouseSubWin>0) for(int i=0;i<W.MouseSubWin;i++) W.MouseY=W.MouseY-W.height[i]-2; } if(id==CHARTEVENT_CHART_CHANGE) ChartChanged(); if(OnZ) SetOnChart(sizeArr); if(OnChart) MyChartEvent(id,lparam,dparam,sparam); } ここで何度か0による除算が出たが、ターミナルを再起動すると再現しない ) Nikolai Semko 2021.07.16 15:14 #135 Oleksii Chepurnyi:ここで何度か0による除算が出たが、ターミナルを再起動すると再現しない )、とりあえずこのように置き換えてください:void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) { if (W.dx_pix==0) return; if (sparam=="0") W.MouseStatus=NO_PRESSED; else if (sparam=="1") W.MouseStatus=LEFT_BUTTON_PRESSED; else if (sparam=="2") W.MouseStatus=RIGHT_BUTTON_PRESSED; else if (sparam=="3") W.MouseStatus=LEFT_AND_RIGHT_BUTTONS_PRESSED; else W.MouseStatus=KEY_PRESSED; W.IdEvent=id; W.lparam=lparam; if(id==CHARTEVENT_MOUSE_MOVE) { W.MouseX=(int)lparam; W.MouseY=(int)dparam; W.MouseBar=(double)W.Left_bar+1-(double)W.MouseX/W.dx_pix; W.MouseSubWin=XYToTimePrice(W.MouseX,W.MouseY,W.MouseTime,W.MousePrice,id); if(W.MouseSubWin>0) for(int i=0;i<W.MouseSubWin;i++) W.MouseY=W.MouseY-W.height[i]-2; } if(id==CHARTEVENT_CHART_CHANGE) ChartChanged(); if(OnZ) SetOnChart(sizeArr); if(OnChart) MyChartEvent(id,lparam,dparam,sparam); } //+------------------------------------------------------------------+いや、こっちの方がいい:void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) { if (sparam=="0") W.MouseStatus=NO_PRESSED; else if (sparam=="1") W.MouseStatus=LEFT_BUTTON_PRESSED; else if (sparam=="2") W.MouseStatus=RIGHT_BUTTON_PRESSED; else if (sparam=="3") W.MouseStatus=LEFT_AND_RIGHT_BUTTONS_PRESSED; else W.MouseStatus=KEY_PRESSED; W.IdEvent=id; W.lparam=lparam; if(id==CHARTEVENT_CHART_CHANGE) ChartChanged(); if(id==CHARTEVENT_MOUSE_MOVE) { W.MouseX=(int)lparam; W.MouseY=(int)dparam; W.MouseBar=(double)W.Left_bar+1-(double)W.MouseX/W.dx_pix; W.MouseSubWin=XYToTimePrice(W.MouseX,W.MouseY,W.MouseTime,W.MousePrice,id); if(W.MouseSubWin>0) for(int i=0;i<W.MouseSubWin;i++) W.MouseY=W.MouseY-W.height[i]-2; } if(OnZ) SetOnChart(sizeArr); if(OnChart) MyChartEvent(id,lparam,dparam,sparam); } 残念ながらQBのバージョンを更新することができない。何かがまた壊れてしまった。 ファイル: iCanvas.mqh 52 kb Vitaliy Kuznetsov 2021.08.03 12:13 #136 4kと8kのモニターを使ったユニバーサル・ソリューションを見るのは興味深い。 例えば、矩形を描き、その上に2つのボタンと2つの入力フィールドを描く。ボタンはそれぞれピクセル単位のオブジェクトです。 ピクセル単位であれば、4k解像度では入力フィールドを除いてすべてが2分の1に縮小される。 しかし、キャンバス全体を自動的に2倍に変換すれば、どのような画面解像度でも、すべてが通常のモニターと同じように表示されます。 もう1つの問題は、Windowsの設定でフォントを拡大する(標準の入力フィールドが拡大される)ユーザーがいることです。 そこで、キャンバス・シートのピクセル化をフォント・サイズに応じた倍率で変更するという、さらに普遍的な解決策があります。 主な条件は、通常のフルHDモニター上で通常のピクセル寸法で描画することです。解決策は 1. シートのスケールを厳密にx2(4Kの場合)、x4(8Kの場合)に変更する。 2. フォントサイズに関連する動的な乗数でシートを拡大縮小する。 何のために。ダッシュボードや取引パネルなど、ピクセル単位でオブジェクトが描画されるもののため。 Nikolai Semko 2021.08.03 14:27 #137 Vitaliy Kuznetsov:4kと8kのモニターを使ったユニバーサル・ソリューションを見るのは興味深い。例えば、矩形を描き、その上に2つのボタンと2つの入力フィールドを描く。ボタンはそれぞれピクセル単位のオブジェクトです。もしピクセル単位であれば、4k解像度では入力フィールド以外はすべて2分の1に縮小される。しかし、キャンバス全体を自動的に2倍に変換すれば、どのような画面解像度でも、すべてが通常のモニターと同じように見えるようになる。また、Windowsの設定でフォントを大きくする(標準入力フィールドが大きくなる)ユーザーがいることも問題かもしれません。そこで、フォント サイズに依存する乗数を使用して、キャンバス シートのピクセル化を変更するという、さらに普遍的な解決策があります。主な条件は、通常のフル HD モニターで、通常のピクセル寸法で描画することです。解決策を模索中です:1. シートのスケールを厳密にx2(4K時)、x4(8K時)に変更する。2. フォントサイズに連動した動的倍率でシートを拡大縮小する。何に使うか。ダッシュボードや取引パネルなど、ピクセル単位でオブジェクトが描画されるものに。 解決の鍵はTERMINAL_SCREEN_DPI です。ここに複雑さはない。私は長い間、すべてを実装してきた。 デモをしている暇はない。処理が理解できない場合は、JSでどのように実装されているかググってください。 Vitaliy Kuznetsov 2021.08.03 14:44 #138 Nikolai Semko: 解決の鍵はTERMINAL_SCREEN_DPI である。 ここに複雑さはない。私は長い間、すべてを実装してきた 。 デモの例を見ている暇はない。もしこのプロセスを理解するのが難しければ、JSでどのように実装されているかググってみてください。 はい、後で検索して見つけました。ありがとう。ここに例があります -https://www.mql5.com/ja/docs/constants/environment_state/terminalstatus Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала www.mql5.com Состояние клиентского терминала - Состояние окружения - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Facundo Laje 2022.08.24 04:24 #139 Nikolai Semko #: 最新バージョン1.12 キャンバスをオブジェクトに変換することは可能ですか?例えば、キャンバスの矩形を標準オブジェクトの矩形に変換して管理するといったことです。 Nikolai Semko 2022.08.24 04:45 #140 Facundo Laje # :キャンバスをオブジェクトに変換することはできますか?例えば、キャンバスの矩形を標準オブジェクトの矩形に変換して管理するとか。文字通り矩形オブジェクトに変換するのであれば、それはできません。 キャンバスもオブジェクトです。 キャンバス・オブジェクトをプログラムで矩形オブジェクトに「変換」して、その中身が移動したり拡大縮小したりすることができるだけです。 視覚的には、四隅に小さな四角がある矩形オブジェクトのように見えるかもしれません。しかし、これを実装できるプログラマーは、このコミュニティでは私を含めて数人しかいないだろう。もし矩形の内部コンテンツの変換について話しているのであれば。単純な塗りつぶしや空の矩形のことなら、どんなプログラマーでもできる。 1...78910111213141516171819 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ありがとうと言わなければならない。これで完璧だ。最高の仕事だ。
最後の質問に答えていただけますか?左右にシフトするのと、上下にシフトするのと、どちらが速いですか?ありがとうございました。
最後の質問に答えてください。左右にシフトするのと、上下にシフトするのと、どちらが速いですか?ありがとうございました。
上下にシフトする方が、左右にシフトするよりもわずかに速い。標準的なFullHDスクリーンウィンドウの平均的なコンピューターでは、シフト全体で約0.3ミリ秒(1/3000秒)かかります。
上下シフトは左右シフトよりわずかに速い。標準的なFullHDウィンドウの平均的なコンピュータでは、シフト全体に約0.3ミリ秒(1/3000秒)かかります。
シフトダウンとシフトアップは、左右よりもわずかに速い。標準的なFullHDスクリーンウィンドウの平均的なコンピュータでは、シフト全体に約0.3ミリ秒(1/3000秒)かかります。
上下シフトは左右シフトよりわずかに速い。標準的なFullHDウィンドウの平均的なコンピュータでは、シフト全体に約0.3ミリ秒(1/3000秒)かかります。
ありがとうございました。
ここで何度か0による除算が出たが、ターミナルを再起動すると再現しない )
ここで何度か0による除算が出たが、ターミナルを再起動すると再現しない )
、とりあえずこのように置き換えてください:
いや、こっちの方がいい:
残念ながらQBのバージョンを更新することができない。何かがまた壊れてしまった。4kと8kのモニターを使ったユニバーサル・ソリューションを見るのは興味深い。
例えば、矩形を描き、その上に2つのボタンと2つの入力フィールドを描く。ボタンはそれぞれピクセル単位のオブジェクトです。
ピクセル単位であれば、4k解像度では入力フィールドを除いてすべてが2分の1に縮小される。
しかし、キャンバス全体を自動的に2倍に変換すれば、どのような画面解像度でも、すべてが通常のモニターと同じように表示されます。
もう1つの問題は、Windowsの設定でフォントを拡大する(標準の入力フィールドが拡大される)ユーザーがいることです。
そこで、キャンバス・シートのピクセル化をフォント・サイズに応じた倍率で変更するという、さらに普遍的な解決策があります。
主な条件は、通常のフルHDモニター上で通常のピクセル寸法で描画することです。解決策は
1. シートのスケールを厳密にx2(4Kの場合)、x4(8Kの場合)に変更する。
2. フォントサイズに関連する動的な乗数でシートを拡大縮小する。
何のために。ダッシュボードや取引パネルなど、ピクセル単位でオブジェクトが描画されるもののため。
4kと8kのモニターを使ったユニバーサル・ソリューションを見るのは興味深い。
例えば、矩形を描き、その上に2つのボタンと2つの入力フィールドを描く。ボタンはそれぞれピクセル単位のオブジェクトです。
もしピクセル単位であれば、4k解像度では入力フィールド以外はすべて2分の1に縮小される。
しかし、キャンバス全体を自動的に2倍に変換すれば、どのような画面解像度でも、すべてが通常のモニターと同じように見えるようになる。
また、Windowsの設定でフォントを大きくする(標準入力フィールドが大きくなる)ユーザーがいることも問題かもしれません。
そこで、フォント サイズに依存する乗数を使用して、キャンバス シートのピクセル化を変更するという、さらに普遍的な解決策があります。
主な条件は、通常のフル HD モニターで、通常のピクセル寸法で描画することです。解決策を模索中です:
1. シートのスケールを厳密にx2(4K時)、x4(8K時)に変更する。
2. フォントサイズに連動した動的倍率でシートを拡大縮小する。
何に使うか。ダッシュボードや取引パネルなど、ピクセル単位でオブジェクトが描画されるものに。
解決の鍵はTERMINAL_SCREEN_DPI である。
はい、後で検索して見つけました。ありがとう。ここに例があります -https://www.mql5.com/ja/docs/constants/environment_state/terminalstatus
最新バージョン1.12
キャンバスをオブジェクトに変換することは可能ですか?例えば、キャンバスの矩形を標準オブジェクトの矩形に変換して管理するといったことです。
キャンバスをオブジェクトに変換することはできますか?例えば、キャンバスの矩形を標準オブジェクトの矩形に変換して管理するとか。
文字通り矩形オブジェクトに変換するのであれば、それはできません。
キャンバスもオブジェクトです。
キャンバス・オブジェクトをプログラムで矩形オブジェクトに「変換」して、その中身が移動したり拡大縮小したりすることができるだけです。
視覚的には、四隅に小さな四角がある矩形オブジェクトのように見えるかもしれません。しかし、これを実装できるプログラマーは、このコミュニティでは私を含めて数人しかいないだろう。
もし矩形の内部コンテンツの変換について話しているのであれば。単純な塗りつぶしや空の矩形のことなら、どんなプログラマーでもできる。