Мой подход. Ядро - Движок. - страница 41

 

у меня вобще такое ощуение последние 2 года шо я не живу, а хз где нахожусь если честно.

я короче вены порезал(вдоль, фотки в личку могу), теперь не понимаю живой я или нет - но тема Петра говорит о том, что нет. :(

все фигово наверное - я в матрице :(
 
Vladimir Gribachev:

у меня вобще такое ощуение последние 2 года шо я не живу, а хз где нахожусь если честно.

я короче вены порезал(вдоль, фотки в личку могу), теперь не понимаю живой я или нет - но тема Петра говорит о том, что нет. :(

все фигово наверное - я в матрице :(

Vladimir Gribachev:

не знаю как оно так

но мне снилось уже это - ядро движек

ппц короче

зы. мне снова пора в дурку на отдых

Товарищ, не шутите так )

Я бы тоже не прочь пофлудить, но боюсь праведного гнева. А Вы видимо нет. Удивляюсь Вашей выдержке, при таком рейтинге и числе продуктов в маркете =))
 
Ilya Malev:
Я бы тоже не прочь пофлудить, но боюсь праведного гнева. А Вы видимо нет. Удивляюсь Вашей выдержке, при таком рейтинге и числе продуктов в маркете =))

гнев админов - он оправдан

я не раз видел бани *типа не за шо, но потом когда почитаешь весь бред который пишут понимаешь, что да, убить мало.

и шо я такого сказал? если в чем-то не прав, то наздоровье.

 
Ilya Malev:

Товарищ, не шутите так 

спасибо, что сохраняете историю. счастья вам, здоровья, любви, благополучия, денег побольше, два красных порша и домик в польше

 
Vladimir Gribachev:

спасибо, что сохраняете историю. счастья вам, здоровья, любви, благополучия, денег побольше, два красных порша и домик в польше

Извините, профессиональная привычка.

П.С. А Вам спасибо за то, что удаляете посты, на которые я отвечал без их цитирования

 

Как и обещал, вот вторая демонстрация движка. Этот движок соединяется с тестовым советником (файл прикреплен ниже) и передает в него действия пользователя.

  1. В окне движка две вкладки. На вкладке "Group folders", - элемент сворачивающий группу "G_FOLDER". Нажимая на него, будет появлятся/исчезать таблица.
  2. На вкладке "Appearance controller", - две кнопки. Каждая управляет явлением своего текста. Нажимая на них, один текст будет появлятся, а другой исчезать.
     Установка:
  1. Прикладываю два файла подключения (Еxternal Connection и Connection properties). Их нужно установить в папку инклюд. (вместо прежних, если они там есть).
  2. Установить движок в папку индикаторов (вместо прежнего, если он там есть), и закинуть на график.
  3. Установить тестовый советник на график. (Файл прилагается ниже если его нет. Установить в папку Experts, открыть, сохранить, скомпилировать и закинуть на график).

После этих процедур, можно проверить подключение тестового советника.

При нажатии на элементы таблицы, вводе текста или выборе опции, тестовый советник будет выводить сообщения Алерт с комментариями о событии. 

Можно изучить устройство файла Еxternal Connection. Оно очень просто.

Файл Connection properties ни открывать, ни менять НЕЛЬЗЯ!.


 


ЗЫ. Также, внизу прилагается файл с кодом окна, для тех кому интересно его изучить.

 
Dmitry Fedoseev:

А попробуйте сделать что бы при нажатии одной кнопочки отображался один набор элементов управления, а по нажатию другой кнопочки - другой элемент управления. При этом, что бы окно можно было сворачивать и разворачивать. Еще предполагается, что вариантов может быть очень много.

Интересно было бы спросить Петра, как у него получится решить эту задачу? 

Вот, Дмитрий, в вышеприведенном примере работают сразу три принципа управления явлением элементов:

  1. Переключение вкладок.
  2. Показ/скрытие групп элементов с помощью элемента G_FOLDER.
  3. Показ/скрытие групп или отдельных элементов с помощью управления явлением.

Стандартная библиотека (насколько я понял) не имеет таких возможностей.

Переключение вкладок вкладок, кнопок, радио-кнопок, пунктов и других элементов осуществляется с помощью к.слова SWITCH.

SWITCH, "Элемент 1","Элемент 2","Элемент 3","Элемент 4",..., END,

Блокировка групп элементов или отдельных элементов осуществляется с помощью к.слова BLOCKS.

"Элемент 1",BLOCKS,"Элемент 2","Элемент 3","Элемент 4",..., END,

Управление явлением группы элементом G_FOLDER.

//Объявляем элемент G_FOLDER:
//----------------------------------------------------------------------------------
GROUP,A,

__,  G_FOLDER, "Group opener 1",  

END_GROUP,
//--------------------------------------------
i,IN,"V1",                       <------------- Устанавливаем канвас на котором рисуем группу элементов.
i, AT, LEFT_TOP, 1,20,           <------------- Устанавливаем позицию группы элементов.

//Устанавливаем свойства элементов типа G_FOLDERS внутри группы:
i,G_FOLDERS, N_COLOR, (int)C'245,245,245',   N_COLOR, (int)C'245,245,245',  AH_COLOR, (int)C'245,245,245',  NH_COLOR, (int)C'245,245,245', END,
//----------------------------------------------------------------------------------
//Делаем таблицу:
//----------------------------------------------------------------------------------
GROUP,A, IS_TABLE,  ROOT,"Group opener 1", <------------------- Устанавливаем привязку явления группы к элементу "Group opener 1", (который является G_FOLDER)


__,     T_HEADER, "The name of the table", H,30,   C_HEADER, "Text cells", C_HEADER, "Checkbox cells",  C_HEADER, "R button cells", C_HEADER, "C list cells",      C_HEADER, "Edit cells", 
__,     R_HEADER, "Row header 1",    T_CELL, "text 1", CHECKBOX, "Checkbox cell 1",    R_BUTTON, "R button cell 1", C_LIST, "C list cell 1",    EDIT, "Edit cell 1",     
__,     R_HEADER, "Row header 2",    T_CELL, "text 2", CHECKBOX, "Checkbox cell 2",    R_BUTTON, "R button cell 2", C_LIST, "C list cell 2",    EDIT, "Edit cell 2",  
__,     R_HEADER, "Row header 3",    T_CELL, "text 3", CHECKBOX, "Checkbox cell 3",    R_BUTTON, "R button cell 3", C_LIST, "C list cell 3",    EDIT, "Edit cell 3",       
__,     R_HEADER, "Row header 4",    T_CELL, "text 4", CHECKBOX, "Checkbox cell 4",    R_BUTTON, "R button cell 4", C_LIST, "C list cell 4",    EDIT, "Edit cell 4", 

END_GROUP,
//----------------------------------
i,  IN, "V1",
i, Y_GAP,-1,
i, X_GAP,-1,

//Устанавливаем свойства элементов типа CHECKBOXES, R_BUTTONS, EDITS внутри группы:
//---------------------------------------------------------------------------------
i, CHECKBOXES, POINTED,0, END, 
i, R_BUTTONS,  POINTED,0, END, 
i, EDITS, POINTED,0, END, 

//Устанавливаем переключение радио-кнопок внутри таблицы:
//---------------------------------------------------------------------------------
"Radio buttons option",SWITCH, "R button cell 1", "R button cell 2","R button cell 3","R button cell 4",  END,

i,IS_ZEBRA_STYLE, <-----------------------------------Устанавливаем стиль Зебра.
i, AT, _X2X, "V1", 4, _Y2H,"Group opener 1", 5,<-----------------------------------Устанавливаем позицию группы относительно сворачивателя.
//----------------------------------------------------------------------------------

Ну и сколько кода нужно написать, чтобы сделать подобное с помощью стандартной библиотеки?

Эти то и отличается язык разметки от библиотеки. Легкость и скорость.

 
Реter Konow:

Вот, Дмитрий, в вышеприведенном примере работают сразу три принципа управления явлением элементов:

  1. Переключение вкладок.
  2. Показ/скрытие групп элементов с помощью элемента G_FOLDER.
  3. Показ/скрытие групп или отдельных элементов с помощью управления явлением.

Стандартная библиотека (насколько я понял) не имеет таких возможностей.

Переключение вкладок вкладок, кнопок, радио-кнопок, пунктов и других элементов осуществляется с помощью к.слова SWITCH.

Блокировка групп элементов или отдельных элементов осуществляется с помощью к.слова BLOCKS.

Управление явлением группы элементом G_FOLDER.

Ну и сколько кода нужно написать, чтобы сделать подобное с помощью стандартной библиотеки?

Эти то и отличается язык разметки от библиотеки. Легкость и скорость.

Вкладки это вообще неинтересный элемент управления, без него можно прекрасно жить. Уж слишком ограничено количество вкладок.

А 2 и 3 - еще чем дальше в лес тем больше дров. Ни малейшего представления не имею о том, что это и зачем оно нужно и даже узнавать не собираюсь. Потому-что набор действительно нужных и необходимых контролов давно определен, и его более чем достаточно для решения любой задачи создания гуи. А вот это вот - на секту смахивает - придумывать собственные названия, методологии, определения... и т.п.

Да и еще раз напомню, что вот такая раздельная реализации гуи в индикаторе для управления советником, вовсе не требует подключения чего либо к советнику... даже если используются массивы вместо ООП. То есть подход кривой. Он кривой там, где он должен быть наиболее идеально продуман, потому-что это, можно сказать "лицо товара". 

 
Dmitry Fedoseev:

Вкладки это вообще неинтересный элемент управления, без него можно прекрасно жить. Уж слишком ограничено количество вкладок.

А 2 и 3 - еще чем дальше в лес тем больше дров. Ни малейшего представления не имею о том, что это и зачем оно нужно и даже узнавать не собираюсь. Потому-что набор действительно нужных и необходимых контролов давно определен, и его более чем достаточно для решения любой задачи создания гуи. А вот это вот - на секту смахивает - придумывать собственные названия, методологии, определения... и т.п.

Да и еще раз напомню, что вот такая раздельная реализации гуи в индикаторе для управления советником, вовсе не требует подключения чего либо к советнику... даже если используются массивы вместо ООП. То есть подход кривой. Он кривой там, где он должен быть наиболее идеально продуман, потому-что это, можно сказать "лицо товара". 

Вкладки переключают канвасы целиком. А второй и третий вариант, предназначен для управления явлением элементов без переключения канвасов. То есть, один и тот же канвас перерисовывается и каждый раз с разным набором элементов.

Насчет подключения, - не понял вашу мысль. Почему не должен подключаться к советнику. А параметры как синхронизировать?

Либо GUI полностью в советнике, либо подключается из вне. В случае подключения из вне, необходимо установить свойства подключения и синхронизировать значения параметров на двух сторонах.

 

вынос GUI из советника в индикатор вещь сомнительная (просто по архитектуре MT - индикаторы работают в интерфейсной нити и могут затормозить ВСЁ. Чтобы не тормозились индикаторы в MT даже часть функций им запрещена)

ну не об этом.

если горе-пользователь взял пару (сторонних) индикаторов и советник и все они GUI с вынесенным ядро-движком. Чё будет ?

PS/ Пётр, заведите уже хоть бесплатный хостинг и положите там ваше изделие. Если code-base не годится. Публикация alpha/beta/preview версий - дело пары часов. Вы не можете найти время что-ли

Причина обращения: