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

 
Maxim Kuznetsov:
может его директивно отправили писать ядро-движок.. ну чтобы на форум не отвлекался :-) 

Следующая задача насколько помню, то была писать на канвасе.

"Напишу я на канвасе, отлежавшись на матрасе"  )))

 
Реter Konow:

Джорж, я вот не понимаю, - причем здесь мой подход? Я же предоставляю интерфейс подключения к GUI, который создается легким языком разметки. Кому и зачем изучать мой подход?

Все что я предлагаю, - значительно проще чем самый простой MQL.

Да нет. Я поглядел - и вижу, сложнее. Именно потому, что предоставляется куча возможностей СРАЗУ, где надо помнить, что, откуда, куда и как. А моя память - куда хуже твоей. Так что - для тех, кто все помнит - и в самом деле, все несложно. А для тех, кто не помнит ?

Язык разметки у тебя как раз является примером твоего подхода, когда "все всегда доступно".

Но опять же - вопрос ведь не в том, хорош ли этот язык разметки, хорош ли подход, хороша ли реализация.

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

Я уже не раз сказал - я ее не вижу. Ты возразил, что "она появится". Ну... ждем...

 
Система бывает сбоит. По своей работе знаю. :) Cпасибо за поддержку. Теперь тоже буду требовать разбана для всех. (На всякий случай. Вдруг по ошибке. :))
 
Georgiy Merts:

Да нет. Я поглядел - и вижу, сложнее. Именно потому, что предоставляется куча возможностей СРАЗУ, где надо помнить, что, откуда, куда и как. А моя память - куда хуже твоей. Так что - для тех, кто все помнит - и в самом деле, все несложно. А для тех, кто не помнит ?

Язык разметки у тебя как раз является примером твоего подхода, когда "все всегда доступно".

Но опять же - вопрос ведь не в том, хорош ли этот язык разметки, хорош ли подход, хороша ли реализация.

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

Я уже не раз сказал - я ее не вижу. Ты возразил, что "она появится". Ну... ждем...

Vasiliy Sokolov:

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

 Ну, вот вчера представил решение с двумя окнами. Вот пример их кода на языке разметки:

(Что здесь адово сложного, честно говоря не вижу)

//-------------------------------------------------------------------------------------------------------------------- 
NEW_WINDOW,  W_NAME, "Window 1",  W_ICON,98,   W_TYPE, SETTINGS,  OOI,
//====================================================================================================================
GROUP,A, 

__,BUTTON, "Button 1", GAP,30,  BUTTON, "Button 2", 

__, CHECKBOX, "Checkbox 1",  GAP,100,  EDIT, "Edit box 1",  W,130,
__, CHECKBOX, "Checkbox 2",
__, CHECKBOX, "Checkbox 3",

END_GROUP,
//----------------------------------
i,AT,_X2X,"MF",10,  _Y2Y,"MF",10,
//----------------------------------
i,Y_GAP,20,
//----------------------------------
i,BUTTONS,  PARAM_TYPE,_BOOL, W,150,  H,100,   N_COLOR,(int)C'235,235,235', END,
//----------------------------------


//-----------------------------------------------------------------
GROUP,A, 

__, BOARD,"Enter text",   

END_GROUP,
//----------------------------------
"Enter text", H_C2C,  "Edit box 1", 0,
"Enter text", ON_LEFT,"Edit box 1", -20,
//-----------------------------------------------------------------


//====================================================================================================================
END_WINDOW,


//-------------------------------------------------------------------------------------------------------------------- 
NEW_WINDOW,  W_NAME, "Window 2",  W_ICON,99,   W_TYPE, SETTINGS,  OOI,
//====================================================================================================================

GROUP, A,

__, T_BOX,"T_1",
             "This window's",
             "appearance controlled",
             "by user's programm.",
             END,

END_GROUP,
//----------------------------
i,AT,_X2X,"MF",10,  _Y2Y,"MF",10,
"T_1",FONT_SIZE,20,
"T_1",text,N_COLOR,(int)C'255,110,10',
"T_1",text,TEXT_FONT,"Arial Bold",
"T_1",N_COLOR,(int)C'240,240,240',

//====================================================================================================================
END_WINDOW,

Конечно, не все понятно без объяснений, но даже без них можно многое понять сразу (как мне кажется...).

 

И результат:


 
Реter Konow:
 

Что здесь адово сложного, честно говоря не вижу

Я не сказал, что "адово сложно". Я сказал - надо много запоминать.

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

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


Но, все это, на самом деле - не такие уж серьезные проблемы. Главная твоя проблема, Петер, это целевая аудитория. Ее нет.

 
Georgiy Merts:

....

Но, все это, на самом деле - не такие уж серьезные проблемы. Главная твоя проблема, Петер, это целевая аудитория. Ее нет.

Знаешь, Джорж, я задумал проект, в котором решил сделать что то массовое. То есть, я рассчитывал на целевую аудиторию состоящую из всех пользователей MQL.

Может я ошибся. Может, это мало кому нужно. Кто знает... Жизнь покажет...))

 
Реter Konow:
 

Может я ошибся. Может, это мало кому нужно. Кто знает... Жизнь покажет...))

Для этого нужен "вариант Б".

Как всегда, могу в пример привести свою Лигу - я сперва думал, что ею заинтересуются, и помогут мне с оптимизацией. Отозвались всего лишь два человека. Но, у меня был "вариант Б" - я купил новый компьютер, и перестал нуждаться в чьей-то помощи, поскольку Лигу-то я в немалой степени создавал для себя - чтобы всегда иметь "пул ТС", которые уже некоторое время работают на демо. И я его сейчас имею, изучаю возможности отбора из них лучших на реал.

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

 
Реter Konow:

(Что здесь адово сложного, честно говоря не вижу)

//+------------------------------------------------------------------+
//|                                               Forum sample 2.mqh |
//|                                                      Peter Konow |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
//-------------------------------------------------------------------------------------------------------------------- 
NEW_WINDOW,  W_NAME, "Window 1",  W_ICON,98,   W_TYPE, SETTINGS,  OOI,
//====================================================================================================================
GROUP,A, 

__,BUTTON, "Button 1", GAP,30,  BUTTON, "Button 2", 

__, CHECKBOX, "Checkbox 1",  GAP,100,  EDIT, "Edit box 1",  W,130,
__, CHECKBOX, "Checkbox 2",
__, CHECKBOX, "Checkbox 3",

END_GROUP,
//----------------------------------
i,AT,_X2X,"MF",10,  _Y2Y,"MF",10,
//----------------------------------
i,Y_GAP,20,
//----------------------------------
i,BUTTONS,  PARAM_TYPE,_BOOL, W,150,  H,100,   N_COLOR,(int)C'235,235,235', END,
//----------------------------------

...

Ты реально спрашиваешь, или прикалываешься? У тебя какая-то адовая строка определения сотни переменных, которую ты хочешь выдать за некую таблицу. Сама псевдотаблица кривая, без структуры, содержащая малопонятные аббревиатуры.

А вот это что такое:

void Sync_params(int ID){for(int a1 = 0; a1 < All_params; a1++){if((int)P_CORE[a1][_SYNC_ID] == ID){P_CORE[a1][_LAST_VALUE]    = P_CORE[a1][_CURRENT_VALUE];P_CORE[a1][_CURRENT_VALUE] = P_CORE[a1][_NEW_VALUE];}}}
void Sync_P_CORE(){for(int a1 = 0; a1 < All_params; a1++){if(P_CORE[a1][_CURRENT_VALUE] != P_CORE[a1][_NEW_VALUE]){P_CORE[a1][_LAST_VALUE]    = P_CORE[a1][_CURRENT_VALUE];P_CORE[a1][_CURRENT_VALUE] = P_CORE[a1][_NEW_VALUE];if(P_CORE[a1][_SYNC_ID] != NULL)Sync_params((int)P_CORE[a1][_SYNC_ID]);EventChartCustom(0,_SYNC_P_CORE,(int)P_CORE[a1][_ELEMENT],0,P_CORE[a1][_CURRENT_VALUE]);}}}

Ты сам придумал такое форматирование? Молодец, у тебя есть все шансы занять первое место в ioccc.org

Но дружище, так не пишут. ВООБЩЕ. Никто этот код использовать не сможет.

The International Obfuscated C Code Contest
  • ioccc.org
International Obfuscated C Code Contest
 
Vasiliy Sokolov:
 

Но дружище, так не пишут. ВООБЩЕ. Никто этот код использовать не сможет.

Василий, руки прочь от Петера !!!

Не мешай человеку.

Хочу увидеть целевую аудиторию !!!  Чтобы хоть кто-то сказал "я прикрутил эту библиотеку к своему эксперту и ИСПОЛЬЗУЮ ее"

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