クラウドソーシングによるGUI。オープンベータテストを実施。 - ページ 24 1...171819202122232425262728293031...58 新しいコメント Алексей Барбашин 2020.03.01 16:39 #231 改めてスレッド全体を読み返してみると、「インターフェイスはマークアップ言語で設計されている」という例が多く見られました。しかし、「インターフェース・コード」が開発者のメイン・プログラムとどのように相互作用するかを正確に示した例は、ピーターからは1つも出てきませんでした。 Nikolaiと私は何度かPeterをこのトピックに減らそうと試みましたが、メインプログラムとGUIの間のインタラクションのサンプルコードはどこにもありませんでした。 また、このスレッドを読んでいて、「プリントコード」という表現に何度か出会いました。ピョートル、この言葉はどういう意味だ?ペツルの「ビギン」にもそんなコマンドがあったような・・・・。なぜコードを印刷するのか?なぜ、正しい名前で正しい場所にあるテキストファイルに保存できないのですか? ピーター ビジュアライザーを急がせないで、あなたの提案の適用性を一般的な文脈で処理しましょう。 つまり、いくつかのボタン、コンボボックス、いくつかのチェックボックス、入力フィールドを 持つフォームを描きます。とりあえず、手続き的なコードでこれらのコントロールを参照し、値を与え、値を取得する方法について説明します。 それを整理した上で、次に進むのです。 Реter Konow 2020.03.01 17:16 #232 Алексей Барбашин: 改めてスレッド全体を読み返してみると、「インターフェイスはマークアップ言語で設計されている」という例が多く見られました。しかし、「インターフェース・コード」が開発者のメイン・プログラムとどのように相互作用するかを正確に示した例は、ピーターからは1つも出てきませんでした。 Nikolaiと私は何度かPeterをこのトピックに減らそうと試みましたが、メインプログラムとGUIの間のインタラクションのサンプルコードはどこにもありませんでした。 また、このスレッドを読んでいて、「プリントコード」という表現に何度か出会いました。ピョートル、この言葉はどういう意味だ?ペツルの「ビギン」にもそんなコマンドがあったような・・・・。なぜコードを印刷するのか?なぜ、正しい名前で正しい場所にあるテキストファイルに保存できないのですか? ピーター ビジュアライザーを急がせないで、あなたの提案の適用性を一般的な文脈で処理しましょう。 つまり、いくつかのボタン、コンボボックス、いくつかのチェックボックス、入力フィールド を持つフォームを描きます。とりあえず、手続き的なコードでこれらのコントロールを参照し、値を与え、値を取得する方法について説明します。 それがわかれば、すぐに次のステップに進むことができます。 Oleg Papkovのプロフィールを見る。1年前にマークアップ言語で、いろいろな要素を盛り込んだ11ウィンドウのGUIを作ってあげました。すべてがうまくいく。彼は自分が何を言っているのか、誰よりもよく知っている。今、とても忙しいんです。 オレグ・パプコフ そして、Alexandr Atagyan(彼のパネルがこちら)。 Реter Konow 2020.03.01 17:31 #233 このパネルの接続ファイルはこちらです。やっぱり見つけた。 ファイル: External_Connection.mqh 32 kb Реter Konow 2020.03.01 17:40 #234 このファイルには、コントロールの 呼び出し、値の取得、値や状態の設定などの機能が含まれています。機能は標準的なもので、ユーザーがファイルを覗き込む必要はありません。 ファイル: Connection_Properties.mqh 19 kb Алексей Барбашин 2020.03.01 18:10 #235 Реter Konow: このパネルの接続ファイルはこちらです。やっぱり見つけた。 このコードには、メインプログラムとインターフェイスの間の相互作用が見当たりませんでした。どうやら私たちは全く違う言語を話しているようです。 Реter Konow 2020.03.01 18:22 #236 Алексей Барбашин: このコードでは、メインプログラムとインターフェイスの間のインタラクションは見当たりませんでした。どうやら私たちは全く違う言語を話しているようです。 メインプログラムを持っていない。このインターフェースを作った相手には、それがある。GUIはリソース経由で彼らのプログラム(そのコードは全く見て いない)に接続されていました。そして今回、その接続部分が内部に統合されることになりました。つまり、リソースがなくても動作します。 直接的に Алексей Барбашин 2020.03.01 18:35 #237 Реter Konow: メイン プログラムがないんです。このインターフェースを作った相手には、それがある。GUIはリソース経由で彼らのプログラム(そのコードは全く見て いない)に接続されていました。そして今回、その接続部分が内部に統合されることになりました。つまり、リソースがなくても動作します。直接的に それはちょっと違いますね。ビジュアルインターフェースのエディターを作っているんですね。アプリケーションのビジュアル部分は、まさにアプリケーションが作成するGUIです。そして、その「裏」で何が行われているかというと、新しいGUIのテキストがどのように作られているかというと、メインプログラムなのです。 でも、あなたにはあなたなりのプログラミングの考え方があるのだから......。 Реter Konow 2020.03.01 18:58 #238 Алексей Барбашин: それはちょっと違うんじゃないですか?ビジュアルインターフェースのエディターを作っているんですね。アプリケーションのビジュアル部分は、まさにアプリケーションが作成するGUIです。そして、その「裏」で何が行われているかというと、新しいGUIのテキストがどのように作られているかが、メインのプログラムになっています。 でも、あなたにはあなたなりのプログラミングの考え方があるのだから......。 私たちは大きな見解の相違がありますね、アレクセイ。そのままにしておいたほうがいい。すぐに共通言語が見つかるわけではないし、時間もかかる。ミニマム版を完成させるので、自分の目で確かめてください。明後日までに完成させるようにします。 Реter Konow 2020.03.01 20:14 #239 Алексей Барбашин: このコードでは、メインプログラムとインターフェイスの間のインタラクションは見当たりませんでした。どうやら私たちは全く違う言語を話しているようです。 ということなんでしょうね。 void SMSG(string par0 = "0", string par1 = "0", string par2 = "0", string par3 = "0") { SEND send; uint i1 = 0; if(par0 != "0"){MSG += par0 + "`" + par1 + "`" + par2 + "`" + par3 + "~";} if(MSG != NULL && (par0 == (string)DRIVE_IS_READY || GUI_ЗАГРУЖЕН)) { StringToCharArray(MSG,send.char_Send); ResourceCreate("::DRIVE_2_EA",send.uint_Send,8000,1,0,0,0,COLOR_FORMAT_XRGB_NOALPHA); //ArrayInitialize(send.char_Send,0); while(send.uint_Send[i1]){send.uint_Send[i1] = 0; i1++;} MSG = NULL; } } //-------------------------------------------------------------------- //--------------------- ----------------------------------------------- void RMSG(bool Internal_message = 0) { READ read; uint width,height, i1 = 0; string msg[], pars[]; bool q1 = 0,q2 = 0,q3 = 0;bool t = 0; string msg2read = NULL; int Номер_колонки = 0,T_header = 0,Программный_вызов = 0,Элемент = 0; read.uint_Read[0] = 0; //------------------------------------------------------------------------------------ EA_ADRESS = ObjectGetString(0,"EA_2_DRIVE",OBJPROP_TEXT); //------------------------------------------------------------------------------------ if(!Internal_message)t = ResourceReadImage(EA_ADRESS + "::EA_2_DRIVE",read.uint_Read,width,height); if(read.uint_Read[0] || Internal_message) { int cnvs[100]; int cnvs_2[100]; //-------------------------------------- ArrayInitialize(cnvs,0); ArrayInitialize(cnvs_2,0); //-------------------------------------- Не_рисовать = 1; int Полная_перерисовка_канваса = 0; //-------------------------------------- if(!Internal_message)msg2read = CharArrayToString(read.char_Read); else msg2read = i_MSG; //--------------------------------------------------------------------- ushort Msep = StringGetCharacter("~",0); int s = StringSplit(msg2read,Msep,msg); //--------------------------------------------------------------------- for(int a1 = 0; a1 < s; a1++) { ushort Psep = StringGetCharacter("`",0); int w1 = StringSplit(msg[a1],Psep,pars); //-------------------------------------- if(w1) { //------------------------------------------------------------------ if((int)pars[0] == INIT_GUI && !GUI_ЗАГРУЖЕН) { Загрузить_GUI(); } //-------------------------------------------------- if(GUI_ЗАГРУЖЕН) { if((int)pars[0] == M_COLOR) { G_CORE[(int)pars[1]][G_CORE[(int)pars[1]][_CURRENT_STATE]] = (int)pars[3]; //--------------------------------------------- G_CORE[(int)pars[1]][_REDROW] = 1; q1 = 1; } //------------------------------------------------------------------- if((int)pars[0] == T_COLOR) { G_CORE[G_CORE[(int)pars[1]][_HIS_TEXT]][G_CORE[(int)pars[1]][_CURRENT_STATE]] = (int)pars[3]; //--------------------------------------------- if(!G_CORE[(int)pars[1]][_PARAMETER]) { G_CORE[(int)pars[1]][_REDROW] = 1; q1 = 1; } else { G_CORE[(int)pars[1]][_REDROW] = 2; q2 = 1; } } //------------------------------------------------------------------- if((int)pars[0] == F_COLOR) { int Состояние_элемента = G_CORE[(int)pars[1]][_CURRENT_STATE]; if(!Состояние_элемента)Состояние_элемента = _NEUTRAL_STATE; //--------------------------------------------- switch(Состояние_элемента) { case _NEUTRAL_STATE: G_CORE[(int)pars[1]][_N_FRAME_COLOR] = (int)pars[3]; break; case _NEUTRAL_HIGHLIGHTED: G_CORE[(int)pars[1]][_NH_FRAME_COLOR] = (int)pars[3]; break; case _ACTIVATED_STATE: G_CORE[(int)pars[1]][_A_FRAME_COLOR] = (int)pars[3]; break; case _ACTIVATED_HIGHLIGHTED: G_CORE[(int)pars[1]][_AH_FRAME_COLOR] = (int)pars[3]; break; } //--------------------------------------------- G_CORE[(int)pars[1]][_REDROW] = 1; q1 = 1; } //------------------------------------------------------------------- if((int)pars[0] == STATE) { G_CORE[(int)pars[1]][_CURRENT_STATE] = (int)pars[3]; //--------------------------------------------- G_CORE[(int)pars[1]][_REDROW] = 1; q1 = 1; } //------------------------------------------------------------------- if((int)pars[0] == DEST_GUI) { for(int s1 = 2; s1 < 500; s1++){if(Открыто_окно[s1])Явление_окон(s1,_WINDOW_CLOSE);} Стереть_Edit(); } //------------------------------------------------------------------- if((int)pars[0] == SET_VALUE_BY_MAGIC || (int)pars[0] == SORT_COLOMN) { Номер_колонки = (int)MathRound((int)pars[2]/100000); T_header = (int)pars[2] - (Номер_колонки*100000); Элемент = Элемент_по_T_header_и_колонке(T_header,Номер_колонки,(int)pars[1]); } //------------------------------------------------------------------- if((int)pars[0] == SET_VALUE_BY_MAGIC || (int)pars[0] == SORT_COLOMN || (int)pars[0] == DELETE_ROW || (int)pars[0] == DELETE_ALL_ROWS) { if((int)pars[0] != SORT_COLOMN)int _Канвас = G_CORE[T_header][_CANVAS]; Программный_вызов = 1; } //------------------------------------------------------------------- if((int)pars[0] == SET_VALUE_BY_MAGIC) { //-------------------------------------------------- //-------------------------------------------------- if(!Элемент) { Полная_перерисовка_канваса = 1; //-------------------- Явление_рядов(NEW_ROW,T_header,(int)pars[1]); Элемент = Элемент_по_T_header_и_колонке(T_header,Номер_колонки,(int)pars[1]); } //-------------------------------------------------- //-------------------------------------------------- Контроль_значений_движка(Элемент, pars[3], 1); //-------------------------------------------------- } //------------------------------------------------------------------- if((int)pars[0] == SORT_COLOMN) { Явление_рядов(SORT_COLOMN,T_header,Номер_колонки,(int)pars[3]); } //------------------------------------------------------------------- if((int)pars[0] == DELETE_ROW) { Явление_рядов(DELETE_ROW,(int)pars[2],(int)pars[1]); } //------------------------------------------------------------------- if((int)pars[0] == DELETE_ALL_ROWS) { Явление_рядов(DELETE_ALL_ROWS,(int)pars[2],(int)pars[1]); } //------------------------------------------------------------------- if((int)pars[0] == SET_RANGE_N_STEP) { P_CORE[(int)pars[1]][_V_MIN] = (string)pars[2]; P_CORE[(int)pars[1]][_V_MAX] = (string)pars[3]; P_CORE[(int)pars[1]][_V_STEP] = (string)pars[4]; P_CORE[(int)pars[1]][_DIGITS] = (string)pars[5]; } //------------------------------------------------------------------- //ВЫСКАКИВАЕТ НА КАЖДОМ ОБРАЩЕНИИ К ФУНКЦИИ. //------------------------------------------------------------------ /*if((int)pars[0] == W_CAPTION) {Alert("(int)pars[0] == W_CAPTION"); CONTENT[G_CORE[WND[(int)pars[2]]][_WINDOW_NAME]] = pars[1]; CONTENT[G_CORE[G_CORE[WND[(int)pars[2]]][_CAPTION_OBJECT]][_N_TEXT]] = pars[1]; //----------------------------------------------------------------------------- int Длинна_текста = 0,Высота_текста = 0; //------------------------------------------------ if(!TextSetFont("Microsoft JhengHei Light",10 *-10,FW_NORMAL,0)){Alert("*",__FUNCTION__,"*","Ошибка настройки параметров шрифта! ",GetLastError());} TextGetSize(pars[1],Длинна_текста,Высота_текста); //------------------------------------------------ G_CORE[WND[(int)pars[2]]][_CAPTION_X_SIZE] = Длинна_текста; G_CORE[WND[(int)pars[2]]][_CAPTION_Y_SIZE] = Высота_текста; G_CORE[G_CORE[WND[(int)pars[2]]][_CAPTION_OBJECT]][_TEXT_X_SIZE] = Длинна_текста; G_CORE[G_CORE[WND[(int)pars[2]]][_CAPTION_OBJECT]][_TEXT_Y_SIZE] = Высота_текста; //------------------------------------------------ Объект((int)pars[2]); Нарисовать_элемент(WND[(int)pars[2]] + 1,REDROW_WHOLE_CANVAS); } */ //------------------------------------------------------------------- Программный_вызов = 0; //------------------------------------------------------------------- if((int)pars[0] == _SYNC_P_CORE) { if(!Internal_message)Контроль_значений_движка((int)pars[1], pars[3], 1); else Контроль_значений_движка((int)pars[1], pars[3]); q2 = 1; } //------------------------------------------------------------------- if((int)pars[0] == OPEN_WINDOW) Явление_окон((int)pars[1],_WINDOW_OPEN,NULL); if((int)pars[0] == CLOSE_WINDOW)Явление_окон((int)pars[1],_WINDOW_CLOSE,NULL); //------------------------------------------------------------------- if((int)pars[0] == ONLY_READ)G_CORE[(int)pars[1]][_READ_ONLY] = (int)pars[3]; //========================================================================================= //========================================================================================= int Канвас = G_CORE[(int)pars[1]][_CANVAS]; if((int)pars[0] == SET_VALUE_BY_MAGIC || (int)pars[0] == SORT_COLOMN)Канвас = G_CORE[Элемент][_CANVAS]; //---------------------------------------------- for(int r6 = 0; r6 < 100; r6++) { if(cnvs[r6] == Канвас)break; //-------------------------- if(!cnvs[r6]) { cnvs[r6] = Канвас; cnvs_2[r6] = REDROW_CHANGED_ELEMENTS; //----------------------------------- if(Полная_перерисовка_канваса) { cnvs_2[r6] = REDROW_WHOLE_CANVAS; Полная_перерисовка_канваса = 0; } //----------------------------------- break; } //-------------------------- } //========================================================================================= //========================================================================================= //========================================================================================= } } } //------------------------------------------------------------------------------------------------------- if(!q1 && q2)q3 = 1; else q3 = 0; //------------------------------------------------------------------------------------------------------- for(int f1 = 0; f1 < 100; f1++) { if(!cnvs[f1])break; if(Открыто_окно[G_CORE[cnvs[f1]][_WS_NUMBER]] && !G_CORE[cnvs[f1]][_HIDE] && cnvs_2[f1] == REDROW_CHANGED_ELEMENTS) { Нарисовать_элемент(cnvs[f1],REDROW_CHANGED_ELEMENTS); } if(cnvs_2[f1] == REDROW_WHOLE_CANVAS) { Установить_параметры_прокрутки(cnvs[f1]); //---------------------------------------------------------- //Перерисовываем канвас V_BOX-а. //---------------------------------------------------------- Нарисовать_элемент(G_CORE[G_CORE[cnvs[f1]][_MAIN]][_CANVAS],G_CORE[cnvs[f1]][_MAIN]); //---------------------------------------------------------- //Перерисовываем весь канвас. //---------------------------------------------------------- Нарисовать_элемент(cnvs[f1],REDROW_WHOLE_CANVAS); //---------------------------------------------------------- } } i1 = 0; //------------------------------------------------------------------------------------------------------- if(!Internal_message)while(read.uint_Read[i1]){read.uint_Read[i1] = 0; i1++;} //ArrayInitialize(read.char_Read,0); //ResourceCreate("::EA_2_DRIVE",read.uint_Read,8000,1,0,0,0,COLOR_FORMAT_XRGB_NOALPHA); //------------------------------------------------------------------------------------------------------- Не_рисовать = 0; // MSG = NULL; i_MSG = NULL; //------------------------------------------------------------------------------------------------------- } } この2つの機能は、GUIとプログラムとの「コミュニケーション」を可能にするものです。メッセージを受信し、復号してエレメントかプログラムに転送する。 Vitaly Muzichenko 2020.03.01 20:17 #240 Реter Konow: ということだと思います。 この2つの機能は、GUIとプログラムとの "コミュニケーション "を確保するためのものです。メッセージを受信し、解読して、エレメントかプログラムのどちらかに転送するのです。 これは傑作だ :) Открыто_окно[G_CORE[cnvs[f1]][_WS_NUMBER]] もし、何かをやり直す必要があったとしても、1週間もすれば、何が何に関連しているのか思い出せなくなるでしょう。 1...171819202122232425262728293031...58 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
改めてスレッド全体を読み返してみると、「インターフェイスはマークアップ言語で設計されている」という例が多く見られました。しかし、「インターフェース・コード」が開発者のメイン・プログラムとどのように相互作用するかを正確に示した例は、ピーターからは1つも出てきませんでした。
Nikolaiと私は何度かPeterをこのトピックに減らそうと試みましたが、メインプログラムとGUIの間のインタラクションのサンプルコードはどこにもありませんでした。
また、このスレッドを読んでいて、「プリントコード」という表現に何度か出会いました。ピョートル、この言葉はどういう意味だ?ペツルの「ビギン」にもそんなコマンドがあったような・・・・。なぜコードを印刷するのか?なぜ、正しい名前で正しい場所にあるテキストファイルに保存できないのですか?
ピーター ビジュアライザーを急がせないで、あなたの提案の適用性を一般的な文脈で処理しましょう。
つまり、いくつかのボタン、コンボボックス、いくつかのチェックボックス、入力フィールドを 持つフォームを描きます。とりあえず、手続き的なコードでこれらのコントロールを参照し、値を与え、値を取得する方法について説明します。
それを整理した上で、次に進むのです。
改めてスレッド全体を読み返してみると、「インターフェイスはマークアップ言語で設計されている」という例が多く見られました。しかし、「インターフェース・コード」が開発者のメイン・プログラムとどのように相互作用するかを正確に示した例は、ピーターからは1つも出てきませんでした。
Nikolaiと私は何度かPeterをこのトピックに減らそうと試みましたが、メインプログラムとGUIの間のインタラクションのサンプルコードはどこにもありませんでした。
また、このスレッドを読んでいて、「プリントコード」という表現に何度か出会いました。ピョートル、この言葉はどういう意味だ?ペツルの「ビギン」にもそんなコマンドがあったような・・・・。なぜコードを印刷するのか?なぜ、正しい名前で正しい場所にあるテキストファイルに保存できないのですか?
ピーター ビジュアライザーを急がせないで、あなたの提案の適用性を一般的な文脈で処理しましょう。
つまり、いくつかのボタン、コンボボックス、いくつかのチェックボックス、入力フィールド を持つフォームを描きます。とりあえず、手続き的なコードでこれらのコントロールを参照し、値を与え、値を取得する方法について説明します。
それがわかれば、すぐに次のステップに進むことができます。
オレグ・パプコフ
そして、Alexandr Atagyan(彼のパネルがこちら)。
このパネルの接続ファイルはこちらです。やっぱり見つけた。
このファイルには、コントロールの 呼び出し、値の取得、値や状態の設定などの機能が含まれています。機能は標準的なもので、ユーザーがファイルを覗き込む必要はありません。
このパネルの接続ファイルはこちらです。やっぱり見つけた。
このコードには、メインプログラムとインターフェイスの間の相互作用が見当たりませんでした。どうやら私たちは全く違う言語を話しているようです。
このコードでは、メインプログラムとインターフェイスの間のインタラクションは見当たりませんでした。どうやら私たちは全く違う言語を話しているようです。
メインプログラムを持っていない。このインターフェースを作った相手には、それがある。GUIはリソース経由で彼らのプログラム(そのコードは全く見て いない)に接続されていました。そして今回、その接続部分が内部に統合されることになりました。つまり、リソースがなくても動作します。 直接的に
メイン プログラムがないんです。このインターフェースを作った相手には、それがある。GUIはリソース経由で彼らのプログラム(そのコードは全く見て いない)に接続されていました。そして今回、その接続部分が内部に統合されることになりました。つまり、リソースがなくても動作します。直接的に
それはちょっと違いますね。ビジュアルインターフェースのエディターを作っているんですね。アプリケーションのビジュアル部分は、まさにアプリケーションが作成するGUIです。そして、その「裏」で何が行われているかというと、新しいGUIのテキストがどのように作られているかというと、メインプログラムなのです。
でも、あなたにはあなたなりのプログラミングの考え方があるのだから......。
それはちょっと違うんじゃないですか?ビジュアルインターフェースのエディターを作っているんですね。アプリケーションのビジュアル部分は、まさにアプリケーションが作成するGUIです。そして、その「裏」で何が行われているかというと、新しいGUIのテキストがどのように作られているかが、メインのプログラムになっています。
でも、あなたにはあなたなりのプログラミングの考え方があるのだから......。
私たちは大きな見解の相違がありますね、アレクセイ。そのままにしておいたほうがいい。すぐに共通言語が見つかるわけではないし、時間もかかる。ミニマム版を完成させるので、自分の目で確かめてください。明後日までに完成させるようにします。
このコードでは、メインプログラムとインターフェイスの間のインタラクションは見当たりませんでした。どうやら私たちは全く違う言語を話しているようです。
ということなんでしょうね。
この2つの機能は、GUIとプログラムとの「コミュニケーション」を可能にするものです。メッセージを受信し、復号してエレメントかプログラムに転送する。
ということだと思います。
この2つの機能は、GUIとプログラムとの "コミュニケーション "を確保するためのものです。メッセージを受信し、解読して、エレメントかプログラムのどちらかに転送するのです。
これは傑作だ :)
Открыто_окно[G_CORE[cnvs[f1]][_WS_NUMBER]]
もし、何かをやり直す必要があったとしても、1週間もすれば、何が何に関連しているのか思い出せなくなるでしょう。