Crowdsourced GUI. Offene Betatests. - Seite 19

 
Реter Konow:

Das ist lustig :) Der gesamte Kernel ist voll von Objekten.

Alexey, du hast versprochen, beim Testen zu helfen. Es ist Ihr Verdienst, dass dieser Editor das Licht der Welt erblicken wird. Sie haben mich motiviert, die Arbeit zu beenden.

Sobald ich den Editor aufgesetzt habe (am Dienstag), werden wir gemeinsam ein einfaches Panel mit Schaltflächen, Kontrollkästchen und Eingabefeldern erstellen und es mit einem einfachen Expert Advisor verbinden. Und alle Fragen werden sofort beantwortet)).

Peter, ich gebe das Testen also nicht auf. ))

Was meinen Sie mit "OBJEKT"?

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

Peter, ich weigere mich nicht, auf diese Weise getestet zu werden. ))

Was meinen Sie mit "OBJEKT"?

In meiner technischen Implementierung handelt es sich um eine nummerierte Reihe von Eigenschaften, die zu einer einzelnen, typisierten Entität gehören. Es gibt nur wenige von ihnen: Fenster, Element, Etikett, Symbol, Text und Parameter. Dies sind die Arten von Objekten. Für jeden von ihnen wird eine Zeile im Kernel zugewiesen (Parameter separat). Sie können von jeder Stelle des Programms aus direkt aufgerufen und (wie Sie es ausdrücken) im laufenden Betrieb geändert werden. Da es keine syntaktischen Konventionen, Regeln und Einschränkungen gibt, wächst und entwickelt sich das System sehr schnell. Die wichtigste Bedingung - der Kopf muss hinter dem sich entfaltenden Potenzial von Ideen auftauchen, die auf dem fruchtbaren Boden der Freiheit und der Leichtigkeit der Objektinteraktion leicht entstehen.

 
Реter Konow:

In meiner technischen Implementierung handelt es sich um eine nummerierte Reihe von Eigenschaften, die zu einer einzelnen, typisierten Entität gehören. Es gibt nur wenige davon: Fenster, Element, Label, Icon, Text und Parameter. Dies sind die Arten von Objekten. Für jeden von ihnen werden Zeilen im Kernel zugewiesen (Parameter separat). Sie können von jeder Stelle des Programms aus direkt aufgerufen und (wie Sie es ausdrücken) im laufenden Betrieb geändert werden. Da es keine syntaktischen Konventionen, Regeln und Einschränkungen gibt, wächst und entwickelt sich das System sehr schnell. Die wichtigste Bedingung - der Kopf sollte hinter dem sich entfaltenden Potenzial von Ideen auftauchen, die auf dem fruchtbaren Boden der Freiheit und der Leichtigkeit der Objektinteraktion leicht entstehen.

Es gibt eine Explosion in meinem Kopf...

Die prozedurale Programmierung arbeitet nur mit Funktionen und Variablen. Das maximale Objekt in der prozeduralen Programmierung kann nur eine Variable sein. In Ermangelung von OOP können Variablen nur einfache Typen besitzen: Zahl, String, Datum, Boolean. Diese Typen können keine Eigenschaften haben. Funktionen können keine Objekte sein.

Das primitivste Objekt könnte eine Struktur sein, aber das ist die Domäne von OOP.

Es fällt mir schwer, mir die Typenstruktur vorzustellen:

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

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

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

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

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

{

}

Entweder hat Peter etwas übersehen oder er versucht, den Begriff "Objekt" durch etwas Eigenes zu ersetzen... Der Zweck von OOP ist es, uns die Möglichkeit zu geben, beliebige Typen mit beliebigen Eigenschaften zu erstellen, und dann kann jeder Entwickler die Eigenschaften von geerbten OBJEKTEN erweitern oder ändern.

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

Es gibt eine Explosion in meinem Kopf...

Die prozedurale Programmierung arbeitet nur mit Funktionen und Variablen. Das maximale Objekt in der prozeduralen Programmierung kann nur eine Variable sein. In Abwesenheit von OOP können Variablen nur einfache Typen haben: Zahl, String, Datum, Boolean. Diese Typen können keine Eigenschaften haben. Funktionen können keine Objekte sein.

Das primitivste Objekt könnte eine Struktur sein, aber das ist die Domäne von OOP.

Es fällt mir schwer, mir die Typenstruktur vorzustellen:

Entweder hat Peter etwas übersehen oder er versucht, den Begriff "Objekt" durch etwas Eigenes zu ersetzen... Deshalb wurde die OOP erfunden, damit wir unsere eigenen Typen mit beliebigen Eigenschaften erstellen können und jeder Entwickler die Eigenschaften von geerbten OBJEKTEN erstellen oder ändern kann.

Alexej, warum haben Sie beschlossen, dass ein Objekt als Konzept an eine vordefinierte Syntax und Darstellung gebunden ist? Zu einigen Regeln... Sie beschreiben ein Objekt in einer Klasse, ich in einer Reihe einer großen Matrix. Gleiches Objekt und gleiche Eigenschaften. Ist es nicht mehr ein Objekt? Verschwindet sie?)

Nein. Das Objekt ist als Idee unveränderlich, und man kann es auf verschiedene Weise beschreiben. Ob in einer Klasse oder einem Array ist eine zweitrangige Frage.

 
Реter Konow:

Alexey, warum haben Sie beschlossen, dass das Objekt als Konzept an eine vordefinierte Syntax und Darstellung gebunden ist? Zu einigen Regeln... Sie beschreiben das Objekt in einer Klasse, ich beschreibe es in einer Reihe einer großen Matrix. Gleiches Objekt und gleiche Eigenschaften. Ist es nicht mehr ein Objekt? Verschwindet sie?)

Nein. Das Objekt ist als Idee unveränderlich, und man kann es auf verschiedene Weise beschreiben. Ob in einer Klasse oder einem Array ist eine zweitrangige Frage.

Peter - Ein Objekt ist eine integrale Einheit, die durch einen bestimmten Typ beschrieben oder vielmehr durch einen bestimmten Typ definiert wird. Dem Objekt kann ein beliebiger Name gegeben werden, das Objekt kann erstellt, übertragen, zugegriffen und zerstört werden.

var Button1 = GlobalArrayElement[10];

So funktioniert das nicht! Ein Verweis auf eine Array-Position kann keine benannte Variable sein!

Aber ich werde mich nicht mit Ihnen streiten, ich warte lieber das Ergebnis ab.

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

Es wird auch nicht funktionieren, weil alle Variablen in mql streng typisiert sind.

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

Peter - Ein Objekt ist eine vollständige Einheit, die durch einen bestimmten Typ beschrieben oder vielmehr durch einen bestimmten Typ definiert wird. Dem Objekt kann ein beliebiger Name gegeben werden, das Objekt kann erstellt, übertragen, bearbeitet und zerstört werden.

So funktioniert das nicht! Ein Verweis auf eine Array-Position kann keine benannte Variable sein!

Aber ich werde mich nicht mit Ihnen streiten, ich warte lieber das Ergebnis ab.

Ich habe ständig Variablen, die sich auf Feldpositionen (Kernel) beziehen. Der Mauszeiger wandert über die Oberfläche und die Elemente werden scharf gestellt. Ihre Nummer wird in eine Variable geschrieben, über die ich an jeder Stelle des Programms auf die gewünschte Zeile im Kernel zugreifen kann. Außerdem werden verschiedene Ereignisse ausgelöst, und die Handler befassen sich direkt mit dem gewünschten Objekt, Element, Fenster und Parameter. Ich habe hier noch nichts Effizienteres gesehen.


Mein Ansatz hat einen Nachteil - es ist nicht universell, in diesem Fall - es ist entworfen, um zu erstellen und zu behandeln GUI. Es funktioniert besser als jeder andere Ansatz, aber ich habe es nie außerhalb dieses Bereichs eingesetzt.

 
Реter Konow:

Ich habe ständig Variablen, die sich auf Feldpositionen (Kernel) beziehen. Der Cursor wandert über die Oberfläche und die Elemente werden scharf gestellt. Ihre Nummer wird in eine Variable geschrieben, über die ich an jeder Stelle des Programms auf die gewünschte Zeile im Kernel zugreifen kann. Außerdem werden verschiedene Ereignisse ausgelöst , und die Handler befassen sich direkt mit dem gewünschten Objekt, Element, Fenster und Parameter. Ich habe hier noch nichts Wirksameres gesehen.

Peter, es ist nicht notwendig, gemeinsame Begriffe zu ersetzen. Es ist die Auswechslung, die die Gedanken Ihrer Gegner verwirrt.

Alle Ihre Variablen beziehen sich auf Positionen im Array, aber nicht auf Objekte. Sie haben sie nicht; Sie haben nur ein Array und Positionen darin. Sie brauchen ein Konzept wie "Objekt" nicht auf eine Reihe von primitiven Typen anzuwenden.

In der Programmierung sind die Begriffe "Zahl", "Zeichenkette", "Datum", "boolesch", "Funktion", "Variable", "Klasse", "Array", "Struktur", "Objekt" nicht unveränderlich, wie Sie es ausdrücken!

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

Peter, es ist nicht nötig, akzeptierte Konzepte zu ersetzen. Es ist die Auswechslung, die die Gedanken Ihrer Gegner verwirrt.

Alle Ihre Variablen beziehen sich auf Positionen im Array, aber nicht auf Objekte. Sie haben sie nicht; Sie haben nur ein Array und Positionen darin. Sie brauchen ein Konzept wie "Objekt" nicht auf eine Reihe von primitiven Typen anzuwenden.

In der Programmierung sind die Begriffe "Zahl", "Zeichenkette", "Datum", "Boolescher Wert", "Funktion", "Variable", "Klasse", "Array", "Struktur" und "Objekt" nicht unveränderlich, wie Sie es ausdrücken!

Glauben Sie, dass eine Reihe von Eigenschaften in einem Array, die eine bestimmte Einheit beschreiben, KEIN Objekt ist?

Und die Nummer dieser Zeile ist KEIN Verweis auf ein Objekt?

 
Реter Konow:

Glauben Sie, dass eine Reihe von Eigenschaften in einem Array, die eine bestimmte Entität beschreiben, KEIN Objekt ist?

Und die Nummer dieser Zeile ist KEIN Verweis auf ein Objekt?

Nein, es handelt sich weder um eine Referenz noch um ein Objekt. Eine Referenz ist etwas, das Sie in eine Variable einfügen können. Sie haben einen bestimmten Wert, der in eine Variable eingegeben werden kann - einen Index! Der Index ist nicht der Array-String selbst, sondern eine bestimmte Zahl!

 
Ich freue mich auf den Kampf :) .