Crowdsourced GUI. Open beta testing. - page 19

 
Реter Konow:

That's funny :) The whole kernel is full of objects.

Alexey, you promised to help test it. It's a credit to you that this editor will see the light of day. You motivated me to finish the job.

As soon as I will put up the editor (on Tuesday), together we will create a simple panel of buttons, checkboxes and input fields and connect it to a simple Expert Advisor. And all questions will be answered at once)).

Peter, so I'm not giving up on testing. ))

What do you mean by "OBJECT"?

 
Алексей Барбашин:

Peter, that's not how I refuse to be tested. ))

What do you mean by "OBJECT"?

In my technical implementation, it's a numbered series of properties inherent to a single, typed entity. There are only a few of them: Window, element, label, icon, text and parameter. These are the types of objects. For each of them, rows are allocated in kernel (parameter separately). Each can be directly accessed from anywhere in the program, and changed on the fly (as you put it). Due to the lack of any syntactic conventions, rules and restrictions, the system grows and develops very quickly. The main condition - the head must pop behind the unfolding potential of ideas, which easily emerge on the fertile soil of freedom and ease of object interaction.

 
Реter Konow:

In my technical implementation, this is a numbered series of properties inherent to a single, typed entity. There are only a few of them: Window, Item, Label, Icon, Text and Parameter. These are the types of objects. For each of them, rows are allocated in kernel (parameter separately). Each can be directly accessed from anywhere in the program, and changed on the fly (as you put it). Due to the lack of any syntactic conventions, rules and restrictions, the system grows and develops very quickly. The main condition - the head should pop behind the unfolding potential of ideas, which easily emerge on the fertile soil of freedom and ease of object interaction.

There's an explosion in my head...

Procedural programming operates only with functions and variables. The maximum object in procedural programming can only be a variable. In the absence of OOP, variables can possess only simple types: number, string, date, boolean. These types cannot have any properties. Functions cannot be objects.

The most primitive object might be a structure, but that is the domain of OOP.

I have a hard time imagining the type structure:

int OnInit()
{
ТипКнопка Кнопка1 = новый ТипКнопка();

Кнопка1.ЦветРамки = Новый Цвет(234,123,90);

Форма.Добавить(Кнопка1, КоординатаХ, КоординатаY);

Кнопка1.УстановитьСобытие("Нажатие", НажатиеНаКнопку1);
}

void НажатиеНаКнопку1(ТипКнопка  кнопка)

{

}

Either Peter is missing something or he is trying to replace the concept of "object" with something of his own... The purpose of OOP is to allow us to create any types with any properties and then any developer could enhance or change properties of inherited OBJECT.

 
Алексей Барбашин:

There's an explosion in my head...

Procedural programming operates only with functions and variables. The maximum object in procedural programming can only be a variable. In the absence of OOP, variables can have only simple types: number, string, date, boolean. These types cannot have any properties. Functions cannot be objects.

The most primitive object might be a structure, but that is the domain of OOP.

I can hardly imagine the type structure:

Either Peter is missing something or he is trying to replace the concept of "object" with something of his own... That's why OOP was invented so that we could create our own types with any properties and then any developer could build or change properties of inherited OBJECT.

Alexei, why have you decided that an object, as a concept, is tied to a predefined syntax and representation? To some rules... You describe an Object in a class, I in a series of a big matrix. Same Object and same properties. Is it no longer an object? Does it disappear?)

No. The object is invariant as an idea and you can describe it in different ways. In a class or an array is a secondary question.

 
Реter Konow:

Alexey, why have you decided that the Object as a concept is bound to a predefined syntax and representation? To some rules... You describe the Object in a class, I describe it in a series of a big matrix. Same Object and same properties. Is it no longer an object? Does it disappear?)

No. The object is invariant as an idea and you can describe it in different ways. In a class or an array is a secondary question.

Peter - An object, is an integral entity described by a certain type, or rather defined by a certain type. The object can be given an arbitrary name, the object can be created, transferred, accessed, destroyed.

var Button1 = GlobalArrayElement[10];

It doesn't work that way! A reference to an array position cannot be a named variable!

But I'm not going to argue with you, I'd rather wait for the result.

var ButtonBuy = СоздатьЭлементКнопки("ИмяКнопки", Ширина, Высота, ПозицияХ, ПозицияY);

It won't work either, because all variables in mql are strictly typed.

 
Алексей Барбашин:

Peter - An object is a complete entity described by a certain type, or rather defined by a certain type. The object can be given an arbitrary name, the object can be created, transferred, handled, destroyed.

It doesn't work that way! A reference to an array position cannot be a named variable!

But I'm not going to argue with you, I'd rather wait for the result.

I have variables all the time referring to array (kernel) positions. The cursor walks around the interface and elements come into focus. Their number is written into a variable and through it I access the desired row in the kernel at any point of the program. Further, various events are triggered and handlers deal directly with the required object, element, window and parameter. I haven't seen anything more efficient here.


My approach has a disadvantage - it's not universal, in this case - it is designed to create and handle GUI. It works better than any other approach, but I have never used it outside this area.

 
Реter Konow:

I have variables referring to array (kernel) positions all the time. The cursor walks around the interface and the elements come into focus. Their number is written to a variable and through it I access the desired row in the kernel at any point in the program. Further, various events are triggered and handlers deal directly with the required object, element, window and parameter. I haven't seen anything more effective here.

Peter, there is no need to substitute common concepts. It is the substitution that confuses the minds of your opponents.

All your variables refer to positions in the array, but not to objects. You don't have them; you only have an array and positions in it. You don't need to apply such a concept as "object" to an array of primitive types.

Within programming, the concepts of "Number", "String", "Date", "Boolean", "Function", "Variable", "Class", "Array", "Structure", "Object" are not invariant, as you put it!

 
Алексей Барбашин:

Peter, there is no need to substitute accepted concepts. It is the substitution that confuses the minds of your opponents.

All your variables refer to positions in the array, but not to objects. You don't have them; you only have an array and positions in it. You don't need to apply such a concept as "object" to an array of primitive types.

Within programming, the concepts of "Number", "String", "Date", "Boolean", "Function", "Variable", "Class", "Array", "Structure", and "Object" are not invariant, as you put it!

Do you think a row of properties in an array describing some specific entity is NOT an object?

And the number of this row is NOT a reference to an object?

 
Реter Konow:

Do you think that a row of properties in an array describing some specific entity is NOT an object?

And the number of this row is NOT a reference to an object?

No, it's neither a reference nor an object. A reference is something you can put into a variable. You have a specific value that can be put into a variable - an index! The index is not the array string itself, it's a specific number!

 
Looking forward to the fight :) .