Mein Ansatz. Der Kern ist der Motor. - Seite 10

 
Vasiliy Sokolov:

Wird es eine Antwort auf die zweite Frage geben? Ich werde es noch einmal wiederholen:

Das ist es, was ich unter "Schaltflächeneigenschaften festlegen" verstehe:

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

Das muss im Voraus geschehen.

Wenn es um die Initialisierung von Eigenschaften im Kernel geht, kann dies jederzeit geschehen.

 
Реter Konow:

Sobald Sie die Anzahl der Objekteigenschaften festgelegt haben, können Sie sie nicht mehr ändern. Wenn Sie es ändern, sind Sie nicht mehr in der Reihe.

Sie müssen alle Eigenschaften Ihrer Objekte im Voraus kennen. Geben Sie ihnen Indizes. Und sie müssen alle in die Zeile des Kernels passen.

Aber der Kernel kann dynamisch sein, und Sie können die Anzahl der Elemente und Objekte darin ändern. Verwenden Sie dazu ArrayResize.

Und was passiert, wenn sich im Laufe der Entwicklung plötzlich herausstellt, dass Sie die Anzahl der Eigenschaften Ihres "Objekts" erweitern müssen. Müssen Sie den gesamten Code neu schreiben?

 
Vitalii Ananev:

Was passiert, wenn Sie während der Entwicklung plötzlich feststellen, dass Sie die Anzahl der Eigenschaften Ihres "Objekts" erweitern müssen? Müssen Sie den gesamten Code neu schreiben?

Nein. Nicht alles. Die Zahl meiner Objekteigenschaften nahm während der Entwicklung ständig zu. Am Anfang waren es 20-30, jetzt sind es 236. Ich kann neue Eigenschaften hinzufügen, die nur die Größe der Kerndimension ändern, und sie in den Code einfügen. Es gibt keinen Grund, etwas zu ändern.

 
Реter Konow:

Ändern wir also zunächst die Anzahl der Eigenschaften des Prototyp-Kernels, die die gleichen waren wie im Hauptkernel. Als Nächstes wollen wir einen Zyklus zum Aufbau von G_CORE durchführen.

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

Nach diesem Zyklus wird der G_CORE-Kern mit Prototypen von 10 Tasten gefüllt sein. Als Nächstes müssen wir den Elementen eindeutige Namen geben und die Objekte an ihre Elemente binden, wobei jedes Element einen eindeutigen Index erhält.

Okay, das verstehe ich nicht. Warum haben Sie den Namen der Schaltfläche als Nummer? Was bedeutet die Zahl 1000003? Und wie kann man den Namen der Schaltfläche als Text festlegen?

 
236 Eigenschaften für jedes Objekt. Etwa 50 verschiedene Elemente. Und hier beweisen sie mir, dass der Ansatz schwierig ist. Wenn es schwierig wäre, würde ich es durchziehen?
 
Реter Konow:

Nein. Nicht alles. In meinem Entwicklungsprozess nahm die Anzahl der Objekteigenschaften ständig zu. Am Anfang waren es 20-30, jetzt sind es 236. Ich kann neue Eigenschaften hinzufügen, wobei ich nur die Größe der Kerndimension ändere, und sie in den Code einfügen. Es gibt keinen Grund, etwas zu ändern.

Ich verstehe. Aber du widersprichst dir selbst.

Sobald Sie die Anzahl der Eigenschaften eines Objekts festgelegt haben, können Sie sie nicht mehr ändern. Wenn Sie ihn ändern, wird er die Grenzen des Arrays überschreiten.

Was meinen Sie damit?

 
Vasiliy Sokolov:

Okay, ich verstehe es nicht. Warum haben Sie den Namen der Schaltfläche als Nummer? Was bedeutet die Zahl 1000003? Und wie kann man den Namen der Schaltfläche als Text festlegen?

Wenn Sie viele grafische Objekte haben, ist es nicht sinnvoll, ihnen aussagekräftige Namen zu geben. Also, Zahlen. Außerdem ist es einfacher, sie auf diese Weise in der Schleife zu benennen.

 
Vitalii Ananev:

Ich verstehe. Aber du widersprichst dir selbst.

Wie ist dies zu verstehen?

Das bedeutet, dass die Größe des Kerns der Anzahl der Objekteigenschaften entsprechen sollte. Wenn Sie die Anzahl der Eigenschaften ändern, ohne die Größe des Kerns zu verändern, sind Sie aus dem Feld heraus.

 
Реter Konow:

Es wird keine neuen Horizonte mit Listen geben. Mein Konzept erfordert keine Ergänzungen. Sie ist vollständig und autark.

Ihr Vorteil ist, dass sie keine unnötigen Entitäten und Werkzeuge enthält, die durch OOP entstanden sind.

Das ist verständlich, Sie wissen noch nichts über sie :( Alle Entdeckungen liegen noch vor Ihnen...

Ich bin erstaunt, wie sich die Branche immer mehr dafür interessiert...

Und wie konnte sich der philosophisch geschulte Themenstarter zu einer trivialen Aufstellung herablassen? Man könnte sagen: Einfachheit ist Macht, aber wir fliegen bereits ins All :)

Ich verstehe es nicht :( Realität awwww....

 
Реter Konow:

Wenn es viele grafische Objekte gibt, ist es sinnlos, ihnen aussagekräftige Namen zu geben. Daher die Zahlen. Außerdem ist es einfacher, sie in einer Schleife zu benennen.

Okay, nehmen wir an, dass Sie unter dem Namen eine Nummer haben (natürlich wild, aber nehmen wir an). Aber jede Schaltfläche hat eine Beschriftung, einen Text, zum Beispiel "Abbrechen" oder etwas Ähnliches. Wie kann man diese Eigenschaft angeben? Zum Beispiel so:

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