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

 
Vasiliy Sokolov:

Ответ на второй вопрос будет? Еще раз повторю его:

Вот что значит в моем понимании "задавать свойства кнопки":

#define NAME        0
#define TYPE        1
#define ELEMENT     2

#define X           3
#define X_SIZE      4
#define Y           5
#define Y_SIZE      6
#define BG_COLOR    7
#define TEXT_COLOR  7
#define TEXT        8
#define CORNER      9
#define STATE       10
//-------------------

Это нужно делать заранее.

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

 
Реter Konow:

Однажды утвердив количество свойств объекта, менять его уже нельзя. Если его поменять, то будет выход за пределы массива. 

Ты должен заранее знать все свойства своих объектов. Дать им индексы. И все они должны помещаться в ряд Ядра.

Но, Ядро может быть динамичным, и в нем можно менять количество Элементов и Объектов. Для этого используй ArrayResize.

А что произойдет если в процессе разработки вдруг выяснится, что вам нужно будет расширить количество свойств вашего "объекта". Будете переписывать весь код?

 
Vitalii Ananev:

А что произойдет если в процессе разработки вдруг выяснится, что вам нужно будет расширить количество свойств вашего "объекта". Будете переписывать весь код?

Нет. Не весь. У меня в процессе разработки постоянно увеличивалось количество свойств Объектов. Началось 20-30, а сейчас 236. Я могу добавлять новые свойства, меняя только размер имерения Ядра, и вписывать их в код. Менять ничего не нужно.

 
Реter Konow:

И так, cначала изменим количество свойств ядра прототипов, их было столько же, сколько и в главном ядре. Далее сделаем цикл построения G_CORE.

int P_CORE[3][10] = {
//Основание кнопки.-----------------------------
//
//NAME     TYPE   ELEMENT     X    Y     X_SIZE  Y_SIZE       COLOR 
//----------------------------------------------
{ 100001,  base,  button,    100, 100,    200,    50,    C'245,245,245'},
//---------------------------------------------- 
//Текст кнопки.---------------------------------
//
//NAME    TYPE   ELEMENT   X    Y     X_SIZE  Y_SIZE       COLOR 
//----------------------------------------------
{100002,  text,  button,  120, 120,     0,      0,       C'245,0,0'},
//---------------------------------------------- 
//Иконка кнопки.-------------------------------- 
//
//NAME    TYPE     ELEMENT   X    Y     X_SIZE  Y_SIZE       COLOR 
{100003,  icon,    button,  140, 140,     16,     16,           0},
//---------------------------------------------- 
};

После этого цикла ядро G_CORE будет заполнено прототипами 10-ти кнопок. Далее, наша задача дать Элементам уникальные имена и привязать Объекты к своим Элементам, дав каждому Элементу уникальный индекс.

Так, я не понял. Почему имя кнопки у тебя в виде цифры? Что означает число 1000003? И как задать название кнопки в виде текста?

 
236 свойств у каждого объекта. Около 50-ти разных элементов. А мне здесь доказывают, что подход трудный. Да если бы он был трудный, я бы потянул разве?
 
Реter Konow:

Нет. Не весь. У меня в процессе разработки постоянно увеличивалось количество свойств Объектов. Началось 20-30, а сейчас 236. Я могу добавлять новые свойства, меняя только размер имерения Ядра, и вписывать их в код. Менять ничего не нужно.

Понятно. Но вы противоречите сами себе.

Однажды утвердив количество свойств объекта, менять его уже нельзя. Если его поменять, то будет выход за пределы массива. 

Как это понимать?

 
Vasiliy Sokolov:

Так, я не понял. Почему имя кнопки у тебя в виде цифры? Что означает число 1000003? И как задать название кнопки в виде текста?

Когда графических объектов много, им бессмысленно давать строковые осмысленные имена. Поэтому, номера. К тому же так легче их именовать в цикле.

 
Vitalii Ananev:

Понятно. Но вы противоречите сами себе.

Как это понимать?

Имеется ввиду, что размер ядра должен соответствовать количеству свойств объекта. Если изменить количество свойств и не изменить размер Ядра, - будет выход за пределы массива.

 
Реter Konow:

Не будет новых горизонтов со списками. Моя концепция не требует дополнений. Она закончена и самодостаточна.

Ее преимущество в том, что в ней нет нетребуемых сущностей и инструментов созданных ООП.

Это понятно, вы еще про них ничего не знаете :(    Все открытия впереди...

Я удивляюсь, как ветка набирает интересантов ... 

И как как-бы философски подкованный топикстартер, опустился до банального массива? Может скажут: в простоте - сила, но мы уже в космос летаем :)

Я не понимаю :(    Реальность ауууу....

 
Реter Konow:

Когда графических объектов много, им бессмысленно давать строковые осмысленные имена. Поэтому, номера. К тому же так легче их именовать в цикле.

Хорошо, предположим под именем у тебя кроется цифра (дикость конечно, но предположим). Но у каждой кнопки есть надписть, текст, например "Отмена" или что-то типа этого. Как указать это свойство? Так:

int P_CORE[3][10] = {
//Основание кнопки.-----------------------------
//
//NAME     TYPE   ELEMENT     X    Y     X_SIZE  Y_SIZE       COLOR  TEXT
//----------------------------------------------
{ 100001,  base,  button,    100, 100,    200,    50,    C'245,245,245', "Отмена"}, 
//---------------------------------------------- 
//Текст кнопки.---------------------------------
//
//NAME    TYPE   ELEMENT   X    Y     X_SIZE  Y_SIZE       COLOR 
//----------------------------------------------
{100002,  text,  button,  120, 120,     0,      0,       C'245,0,0'},
//---------------------------------------------- 
//Иконка кнопки.-------------------------------- 
//
//NAME    TYPE     ELEMENT   X    Y     X_SIZE  Y_SIZE       COLOR 
{100003,  icon,    button,  140, 140,     16,     16,           0},
Причина обращения: