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

 
Dmitry Fedoseev:

А вы как думаете? Что здесь такого, чего не сможет осилить стандартная библиотека?

Ок, Дмитрий. Публика здесь не хочет сдаваться. Я возможно, как художник, не очень. Но я пытался показать возможности конструктора. Они достаточно широки. Можно создавать не только быстро, но и красиво (ну, это для тех, кто талантливее меня в рисовании).

Я продемонстрирую код окна с часами:

//----------------------------------------------------------------------------------
NEW_WINDOW,  W_NAME, "Time limits",  W_ICON, "Schedule (16x16)",  W_TYPE, SETTINGS, ALWAYS_ON_TOP,   
MARGINS,-9,-7,
//----------------------------------------------------------------------------------
"MF",N_COLOR,(int)C'200,169,149', 
"MF",NG_LINES,56, 
"MF",NG_STEP,-1,
//----------------------------------------------------------------------------------
 GROUP, A,
//---------------------------------------
__,BOARD,"Time limits for initial trades:", W,280,_,H,30,_,FONT_SIZE,13, _,TEXT_FONT,"Arial Black",_,ADAPT_2_GRADIENT,"MF",_,text, N_COLOR,(int)C'255,255,255',
//--------------------------------------- 
 END_GROUP,
//--------------------------
 i, AT, _X2X, "MF", 33, _Y2Y, "MF", 5,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
 GROUP, A,
//---------------------------------------
 __,REC,"R1", W,190,_,H,63,
//--------------------------------------- 
 END_GROUP,
//--------------------------
 i, AT, _X2W, "OFF", 10, _Y2H, "Time limits for initial trades:", 10,
 i,RECS, 
        N_FRAME,1,
        N_FRAME_COLOR,(int)C'209,173,149', 
       // FRAME_TYPE,_abc,  
        N_COLOR,(int)C'240,209,189',
       // NG_LINES,15,NG_STEP,1,
        NG_LINES,36, 
        NG_STEP,1,
        END,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
 GROUP, A,
    
__, BUTTON,"OFF", W,100,_,H,65, _,P_COLOR,(int)C'250,189,179',  _,A_COLOR,(int)C'255,20,17', _,AP_COLOR,(int)C'255,60,17', _,PARAM_TYPE,_BOOL, _,N_COLOR,(int)C'240,219,189', _,FIC,
         
 END_GROUP,
//--------------------------
 i, AT, _X2X, "MF", 5, _Y2H, "Time limits for initial trades:", 10,
//--------------------------  
i,BUTTONS,  PARAM_TYPE,_BOOL,   text,_A1_,_C2C,       text,_A2_,_C2C,     FONT_SIZE,12,   N_FRAME,1,   A_FRAME,1,   NP_FRAME,1,    END,
"OFF",A_TEXT,"ON",
//-------------------------- 
"OFF",NG_LINES,65, 
"OFF",NG_STEP,-1,
"OFF",AG_LINES,65, 
"OFF",AG_STEP,-1,
"OFF",NPG_LINES,65, 
"OFF",NPG_STEP,-1,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
 GROUP, A,
    
__, EDIT,"Hour to start", _,EDIT_ALIGN_CENTER, _,V_CURRENT,"1",  //_,READ_ONLY, 
    
    EDIT,"End hour",      _,EDIT_ALIGN_CENTER,_,V_CURRENT,"0",  //_,READ_ONLY, 
    
 END_GROUP,
//--------------------------
 i, AT, _X2W, "OFF", 17, _Y2H, "Time limits for initial trades:", 30,
 
 i,X_GAP,3,

 i,EDITS,  
 FRAME_TYPE,_b,
 POINTED,0,
 H,39,
 W,90,
 FONT_SIZE,20,
 N_COLOR,(int)C'240,209,189',
 NH_COLOR,(int)C'240,209,189',
 A_COLOR,(int)C'240,209,189',
 AH_COLOR,(int)C'240,209,189',
 N_FRAME_COLOR,(int)C'200,169,149',
 
 TEXT_FONT,"Arial Black",
 bar,N_FRAME,1,
 bar,A_FRAME,1,
 bar,FRAME_TYPE,_bc,
 
 bar,N_FRAME_COLOR,(int)C'200,169,149',
 bar,NH_FRAME_COLOR,(int)C'200,169,149',
 bar,A_FRAME_COLOR,(int)C'200,169,149',
 bar,AH_FRAME_COLOR,(int)C'200,169,149',
 
 bar,N_COLOR,(int)C'255,229,219',
 bar,NH_COLOR,(int)C'255,229,219',
 bar,A_COLOR,(int)C'255,229,219',
 bar,AH_COLOR,(int)C'255,229,219',
 
 bar,NG_LINES,36, 
 bar,NG_STEP,  1,
 bar,AG_LINES,36, 
 bar,AG_STEP,  1,
 
 text,N_COLOR,  (int)C'200,139,129',
 text,NH_COLOR, (int)C'200,139,129',
 text,A_COLOR,  (int)C'200,139,129',
 text,AH_COLOR, (int)C'200,139,129',
 
END,

//----------------------------------------------------------------------------------

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

__, BOARD,"Hour to start:", W_C2C,"Hour to start",0, _,ON_TOP,"Hour to start",0,  

__, BOARD,"End hour:",      W_C2C,"End hour",     0, _,ON_TOP,"End hour",     0,   

 END_GROUP,
//--------------------------
i,BOARDS, FONT_SIZE,11,ADAPT_2_GRADIENT,"MF", text,N_COLOR,(int)C'180,149,129',   END,
//----------------------------------------------------------------------------------

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

__, H_LINE,"HL3",W,188,_,N_COLOR,(int)C'255,223,199',

END_GROUP,
//----------------------
 i, AT, _X2X, "R1", 1, _Y2Y, "R1", 1,

//----------------------------------------------------------------------------------

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

__, V_LINE,"vL",H,61,_,N_COLOR,(int)C'255,223,199',

END_GROUP,
//------------------------------------
 i, AT, _X2X, "R1", 1, _Y2Y, "R1", 1,

//----------------------------------------------------------------------------------

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

__, H_LINE,"HL5",W,190,_,N_COLOR,(int)C'199,163,139',

END_GROUP,
//----------------------
 i, AT, _X2X, "R1", 1, _Y2H, "R1", 0,

//----------------------------------------------------------------------------------

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

__, V_LINE,"vL2",H,63,_,N_COLOR,(int)C'199,163,139',

END_GROUP,
//----------------------
 i, AT, _X2W, "R1", 0, _Y2Y, "R1", 1,

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

__, LABEL,A, N_LABEL,"Time (32x32)",

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 3, _Y2Y, "MF", 5,
//----------------------------------------------------------------------------------
END_WINDOW,
//***************************************************************************************************************************************** *
 

Конечно, код большой. Но он крайне ПРОСТ.

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

Без синтаксиса, без классов и прочего... Просто взяли элемент, или группу элементов, или целое окно и вставили куда угодно. Целиком.

Потом, поменяли что то  и получился новый элемент, группа элементов или окно.

 
Реter Konow:

...Но я пытался показать возможности конструктора...

Вот: NEW_WINDOW,  W_NAME, "Time limits",  W_ICON, "Schedule (16x16)",  W_TYPE, SETTINGS, ALWAYS_ON_TOP,

Это вы пытаетесь изобразить ООП, только так... по-своему. Это же по сути вызов конструктора: new Qwerty(z,x,c).

 
Dmitry Fedoseev:

Вот: NEW_WINDOW,  W_NAME, "Time limits",  W_ICON, "Schedule (16x16)",  W_TYPE, SETTINGS, ALWAYS_ON_TOP,

Это вы пытаетесь изобразить ООП, только так... по-своему. Это же по сути вызов конструктора: new Qwerty(z,x,c).

Возможно. Но здесь порядок не важен.

Например:

NEW_WINDOW,  W_NAME, "Time limits",  W_ICON, "Schedule (16x16)",  W_TYPE, SETTINGS, ALWAYS_ON_TOP,

или 

NEW_WINDOW, W_ICON, "Schedule (16x16)", W_NAME, "Time limits",     ALWAYS_ON_TOP, W_TYPE, SETTINGS,


Без разницы.

Обратите внимание, свойства могут устанавливаться сразу целой группе однотипных элементов:

i,BOARDS, FONT_SIZE,11,ADAPT_2_GRADIENT,"MF", text,N_COLOR,(int)C'180,149,129',   END,
 
Реter Konow:

Возможно. Но здесь порядок не важен.

Например:

или 


Без разницы.

Обратите внимание, свойства могут устанавливаться сразу целой группе однотипных элементов:

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

 
Реter Konow:

Уровень графики стандартной библиотеки, мягко говоря, не очень. Трудозатраты при создании например таких окон:

Огромны. НИЧЕГО СЕРЬЕЗНОГО ПОЭТОМУ НЕ СОЗДАЕТСЯ.

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

Вы просто не в теме :(

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


Файлы:
HelloWorld1.ex5  250 kb
 
Yury Kulikov:

Вы просто не в теме :(

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


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

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

 
Dmitry Fedoseev:

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

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

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

Сегодня сделаю такой движок и покажу.

 
Dmitry Fedoseev:

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

А что есть проблема? У меня нет времени заниматься исследованием стандартной библиотеки, но думаю если hide/show не решают проблемы, то наверно можно подменять контейнеры, клиентские области, или сам диалог.

 
Yury Kulikov:

А что есть проблема? У меня нет времени заниматься исследованием стандартной библиотеки, но думаю если hide/show не решают проблемы, то наверно можно подменять контейнеры, клиентские области, или сам диалог.

Не знаю, я пытался не получилось.