Краудсорсовый GUI. Открытое бета-тестирование. - страница 5

 
Да уж... Интересно, а хоть контроль правильности такого кода на стадии компиляции имеется?  Допустим если вместо _X2X вписать H_TAB и т.д.
 
Alexey Navoykov:
Да уж... Интересно, а хоть контроль правильности такого кода на стадии компиляции имеется?  Допустим если вместо _X2X вписать H_TAB и т.д.

Контроль правильности имеется частично. Если например вместо H_TAB напишите h_tab или допустите любую орфографическую ошибку в любом ключевом слове. Однако, если будете неверно писать код - контроля не будет. Как и в обычном редакторе.

В приведенном примере, просто будет неверно позиционирована группа.

вот что получилось.

 
Реter Konow:

Однако, если будете неверно писать код - контроля не будет. Как и в обычном редакторе.

Вы имеете ввиду текстовый редактор? Тогда отлаживать такой код придётся неимоверное количество времени.  Те многочисленные случайные ошибки (типа перепутал местами параметры, пропустил что-то и т.д.), которые в обычном случае контролирует компилятор, здесь придётся вылавливать самому во время выполнения.
В итоге вся эта кажущаяся лаконичность написания кода выливается в адские мучения по его последующей отладке.  Сэкономить сотню строк кода, чтоб потом потратить сотню человеко-часов на вылавливание простейших ошибок. Такое себе...
 
Alexey Navoykov:
Вы имеете ввиду текстовый редактор? Тогда отлаживать такой код придётся неимоверное количество времени.  Те многочисленные случайные ошибки (типа перепутал местами параметры, пропустил что-то и т.д.), которые в обычном случае контролирует компилятор, здесь придётся вылавливать самому во время выполнения.
В итоге вся эта кажущаяся лаконичность написания кода выливается в адские мучения по его последующей отладке.  Сэкономить сотню строк кода, чтоб потом потратить сотню человеко-часов на вылавливание простейших ошибок. Такое себе...

Посмотрите сколько окон я наклепал. И как быстро я их клепаю. Зачем выдумывать сложности. Все очень легко и быстро. Нужно только освоить базовые правила. 

Посмотрите на код. Цепочки свойств, и целые группы и окна, можно просто переносить из проекта в проект. Никто не запрещает создать свободную базу кода GUI, откуда все будут брать готовые шаблоны. 

Каждое созданное окно может становиться прототипом для следующего.

 

Спасибо, Петр, загрузил твой код, обновился до версии 1.3, после переключения таймфрейма, пропадает крестик и панель задач внизу, ну и ничего больше не нажимается.

Так же почему-то во всех вкладках отображается текст,  а должно только во вкладке Горячие клавиши, и то что в кавычках "UP" и "DOWN" должно редактироваться,

и всё равно пока мне не понятно, что это за команды, ты бы выложил инструкцию по командам и синтаксис, если ещё не готово, то я не тороплю


 
Rafil Nurmukhametov:

Спасибо, Петр, загрузил твой код, обновился до версии 1.3, после переключения таймфрейма, пропадает крестик и панель задач внизу, ну и ничего больше не нажимается.

Так же почему-то во всех вкладках отображается текст,  а должно только во вкладке Горячие клавиши, и то что в кавычках "UP" и "DOWN" должно редактироваться,

и всё равно пока мне не понятно, что это за команды, ты бы выложил инструкцию по командам и синтаксис, если ещё не готово, то я не тороплю


Несколько пояснений, Рафиль.

1. На графике конструктора переключать таймфреймы не нужно. Он для этого не приспособлен. На нем ты моделируешь интерфейс, а потом распечатываешь его файлы: CORES и Internal_API. Эти файлы ты подключишь к своему приложению и оно обретет построенный для него GUI.

2. К вкладкам привязываются целые группы объектов:

//--------------------------------------------------------------------------------------------------------------
//УСТАНАВЛИВАЕМ ЯВЛЕНИЕМ КАКИХ ГРУПП БУДУТ УПРАВЛЯТЬ ВКЛАДКИ (прописываем имена групп последовательно).--------------
//--------------------------------------------------------------------------------------------------------------
"Цветовые настройки",  IS_APPEARANCE_CONTROLLER,  "Группа вкладки цветовых настроек", ... продолжаем перечисление названий групп или объектов... END,
"Индикаторы",          IS_APPEARANCE_CONTROLLER,  "Группа вкладки индикаторы",        ... продолжаем перечисление названий групп или объектов... END,
"Горячие клавиши",     IS_APPEARANCE_CONTROLLER,  "Группа вкладки клавиш",            ... продолжаем перечисление названий групп или объектов... END,
//----------------------------------------------------------------------------------


//------------------------------------------------------------------------------------
//ИМЕНУЕМ ГРУППЫ КАК ИХ ПОДКЛЮЧАЛИ ВЫШЕ. И ТОГДА, ВКЛАДКИ БУДУТ УПРАВЛЯТЬ ИХ ЯВЛЕНИЕМ:
//------------------------------------------------------------------------------------
GROUP, "Группа вкладки цветовых настроек",  

....

END_GROUP,
//------------------------------------------------------------------------------------
GROUP, "Группа вкладки индикаторы"",  

....

END_GROUP,
//------------------------------------------------------------------------------------
GROUP, "Группа вкладки клавиш",  

....

END_GROUP,

Инструкцию по коммандам и базовые правила я сегодня распечатаю. Будут еще обновления, я постоянно исправляю баги.


ЕЩЕ:

1. ОДИНАКОВЫЕ ИМЕНА ГРУППАМ ИЛИ ОБЪЕКТАМ ВНУТРИ ОДНОГО ОКНА ДАВАТЬ НЕЛЬЗЯ. ЕСЛИ ИМЯ ОБЪЕКТА НЕ СУЩЕСТВЕННО, ЕГО ПРОСТО НАЗЫВАЮТ "А" И ОНО СОЗДАЕТСЯ АВТОМАТИЧЕСКИ.

2. НЕЛЬЗЯ НАЗЫВАТЬ ОКНА ОДИНАКОВЫМИ ИМЕНАМИ.

 
Rafil Nurmukhametov:
...  и то что в кавычках "UP" и "DOWN" должно редактироваться...


Поясни пожалйста, что значит редактироватся.
 
Реter Konow:
Поясни пожалйста, что значит редактироватся.

т.е. должно быть поле для ввода цифр и букв

 
Rafil Nurmukhametov:

т.е. должно быть поле для ввода цифр и букв

Ок.  Тогда так:

//---------------------------------------------
//НАЗВАНИЯ ПОЛЕЙ ВВОДА И ПОЛЯ ВВОДА.
//---------------------------------------------
GROUP, "Group name 1",  

__,BOARD,"ПОКУПКА ПО РЫНКУ  - ''UP''",   EDIT,"ПОКУПКА ПО РЫНКУ",  

GAP,20,

__,BOARD,"ПРОДАЖА ПО РЫНКУ  - ''DOWN''",EDIT,"ПРОДАЖА ПО РЫНКУ",    

END_GROUP,
//-----------------------------------
//ПОЗИЦИЯ ГРУППЫ ОТНОСИТЕЛЬНО ПРЯМОУГОЛЬНИКА R1 (тип привязки по оси х, имя объекта привязки, поправка. тоже самое для оси y).
//-----------------------------------
i, AT, _X2X,"R1",10, _Y2Y,"R1",30,
//-----------------------------------
//ПРИВЯЗЫВАЕМ ТЕКСТ ЭЛЕМЕНТОВ BOARD К ЛЕВОМУ КРАЮ И УСТАНАВЛИВАЕМ ДЛИННУ.
//-----------------------------------
i,BOARDS,  text, _A1_,_X2X,0,  W,200,  END,
//-----------------------------------
//УСТАНАВЛИВАЕМ ДЛИННУ ПОЛЕЙ ВВОДА.
//-----------------------------------
i,EDITS,   W,100,                      END,
//-----------------------------------

Поставь вместо прежней группы.

зы. вечером будет обновление. исправлены заметные баги.


 
Обновил версию. Напечатал урок.