私のアプローチコアはエンジンです。 - ページ 10

 
Vasiliy Sokolov:

2つ目の質問に対する回答はあるのでしょうか?もう一度、繰り返します。

私の理解では、「ボタンのプロパティを設定する」とはこういうことです。

#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:

オブジェクトプロパティの数は、一度設定すると、もう変更できません。変更するとアレイから外れてしまいます。

オブジェクトのすべてのプロパティを事前に知っておく必要があります。インデックスを付与する。そして、そのすべてがKernelの行に収まっていなければならない。

しかし、Kernelは動的であり、その中のItemやObjectの数を変更することができる。これには、ArrayResizeを使用 します。

また、開発の過程で突然、「オブジェクト」のプロパティの数を増やす必要があることが判明した場合はどうするか。コードを全部書き直さなければならないのでしょうか?

 
Vitalii Ananev:

もし、開発中に突然、「オブジェクト」のプロパティの数を増やす必要があることに気づいたらどうするか。すべてのコードを書き直さなければならないのでしょうか?

いいえ、全部ではありません。開発中もオブジェクトのプロパティは 増え続けました。20~30で始まり、今は236です。Coreディメンションのサイズだけを変えて、新しいプロパティを追加して、コードに入れることができるんだ。何も変える必要はないのです。

 
Реter Konow:

で、まずプロトタイプカーネルのプロパティの数を変えてみましょう、メインカーネルと同じでしたね。次に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個のボタンのプロトタイプで埋め尽くされることになります。次に、Elementにユニークな名前をつけ、オブジェクトを そのElementにバインド し、各Elementにユニークなインデックスを付与します。

なるほど、納得がいかない。なぜボタン名を数字にしているのですか?1000003という数字は何を意味するのでしょうか?また、ボタン名をテキストに設定するにはどうすればよいのでしょうか。

 
各オブジェクトの236のプロパティ。約50種類のエレメント。そして、そのアプローチが難しいことは、ここにいる人たちが証明してくれています。もし難しかったら、私はそれをやり遂げることができるだろうか?
 
Реter Konow:

いいえ、全部ではありません。私の開発過程では、Objectのプロパティが どんどん増えていきました。20~30で始まり、今は236です。Coreディメンジョンのサイズだけを変えて、新しいプロパティを追加し、コードに収めることができます。何も変える必要はないのです。

なるほど。でも、矛盾していますよね。

オブジェクトのプロパティの数は、一度設定するともう変更することはできません。変更すると、配列の限界を超えてしまいます。

どういうことですか?

 
Vasiliy Sokolov:

なるほど、納得がいかない。なぜ、ボタンの名前を数字にしているのですか?1000003という数字は何を意味するのでしょうか?また、ボタンの名前をテキストに設定するにはどうすればよいのでしょうか。

グラフィカルなオブジェクトがたくさんある場合、それらに文字列の意味のある名前をつけるのは意味がありません。だから、数字。それに、ループの中でこのように名前をつけるのは簡単です。

 
Vitalii Ananev:

なるほど。でも、矛盾していますよね。

これをどう理解すればいいのか。

カーネルの大きさは、オブジェクトのプロパティの 数に対応させるべきだということです。プロパティの数を変えてもカーネルの大きさが変わらなければ、配列から外れていることになります。

 
Реter Konow:

リストでは新しい地平は 開けない。私のコンセプトは、追加を必要としないことです。完全で自己完結している。

その利点は、OOPによって作られた不要なエンティティやツールが含まれていないことです。

まだ何も知らないのだから無理もない :( すべての発見はこれからだ...)

支店がどんどん興味をもってくれるなんて...。

そして、哲学的な訓練を受けた話題提供者が、どうしてつまらない配列に身を落としたのだろうか。シンプルは力なりと言いますが、私たちはすでに宇宙へ飛び立っているのです(笑)。

意味不明 :( 現実逃避wwwwwwwwwwww

 
Реter Konow:

グラフィカルなオブジェクトが多数ある場合、それらに意味のある文字列名をつけることは無意味である。だから、数字。それに、ループで名前をつけるのも簡単です。

さて、名前の下に数字があると仮定しましょう(もちろん乱暴ですが、仮定してみましょう)。しかし、それぞれのボタンにはキャプション、例えば "Cancel "のようなテキストがあります。このプロパティはどのように指定するのですか?こんな感じ。

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},