GUI in crowdsourcing. Open beta testing. - pagina 19

 
Реter Konow:

Questo è divertente :) L'intero kernel è pieno di oggetti.

Alexey, hai promesso di aiutare a testarlo. È un merito che questo editore veda la luce. Mi hai motivato a finire il lavoro.

Non appena metterò su l'editor (martedì), creeremo insieme un semplice pannello di pulsanti, caselle di controllo e campi di input e lo collegheremo ad un semplice Expert Advisor. E tutte le domande avranno una risposta immediata)).

Peter, quindi non rinuncio ai test. ))

Cosa intende per "OGGETTO"?

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

Peter, non è così che rifiuto di essere messo alla prova. ))

Cosa intende per "OGGETTO"?

Nella mia implementazione tecnica, è una serie numerata di proprietà inerenti a una singola entità tipizzata. Ce ne sono solo alcuni: finestra, elemento, etichetta, icona, testo e parametro. Questi sono i tipi di oggetti. Per ciascuno di essi, le righe sono allocate nel kernel (parametro a parte). Ognuno di essi è direttamente accessibile da qualsiasi punto del programma, e può essere cambiato al volo (come dite voi). A causa della mancanza di convenzioni sintattiche, regole e restrizioni, il sistema cresce e si sviluppa molto rapidamente. La condizione principale - la testa deve schioccare dietro il potenziale di sviluppo delle idee, che emergono facilmente sul terreno fertile della libertà e della facilità di interazione con gli oggetti.

 
Реter Konow:

Nella mia implementazione tecnica, si tratta di una serie numerata di proprietà inerenti ad una singola entità tipizzata. Ce ne sono solo alcuni: Window, Item, Label, Icon, Text e Parameter. Questi sono i tipi di oggetti. Per ciascuno di essi, le righe sono allocate nel kernel (parametro a parte). Ognuno di essi è direttamente accessibile da qualsiasi punto del programma, e può essere cambiato al volo (come dite voi). A causa della mancanza di convenzioni sintattiche, regole e restrizioni - il sistema cresce e si sviluppa molto rapidamente. La condizione principale - la testa dovrebbe schioccare dietro il potenziale di dispiegamento delle idee, che emergono facilmente sul terreno fertile della libertà e della facilità di interazione degli oggetti.

C'è un'esplosione nella mia testa...

La programmazione procedurale opera solo con funzioni e variabili. L'oggetto massimo nella programmazione procedurale può essere solo una variabile. In assenza di OOP, le variabili possono possedere solo tipi semplici: numero, stringa, data, booleano. Questi tipi non possono avere alcuna proprietà. Le funzioni non possono essere oggetti.

L'oggetto più primitivo potrebbe essere una struttura, ma questo è il dominio della OOP.

Faccio fatica a immaginare la struttura del tipo:

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

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

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

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

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

{

}

O a Peter manca qualcosa o sta cercando di sostituire il concetto di "oggetto" con qualcosa di suo... Lo scopo di OOP è di permetterci di creare qualsiasi tipo con qualsiasi proprietà e poi qualsiasi sviluppatore potrebbe migliorare o cambiare le proprietà dell'OBJECT ereditato.

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

C'è un'esplosione nella mia testa...

La programmazione procedurale opera solo con funzioni e variabili. L'oggetto massimo nella programmazione procedurale può essere solo una variabile. In assenza di OOP, le variabili possono avere solo tipi semplici: numero, stringa, data, booleano. Questi tipi non possono avere alcuna proprietà. Le funzioni non possono essere oggetti.

L'oggetto più primitivo potrebbe essere una struttura, ma questo è il dominio della OOP.

Faccio fatica a immaginare la struttura del tipo:

O a Peter manca qualcosa o sta cercando di sostituire il concetto di "oggetto" con qualcosa di suo... Questo è il motivo per cui OOP è stato inventato in modo da poter creare i nostri tipi con qualsiasi proprietà e poi ogni sviluppatore può costruire o cambiare le proprietà degli OBJECT ereditati.

Alexei, perché hai deciso che un oggetto, come concetto, è legato a una sintassi e rappresentazione predefinita? Per alcune regole... Tu descrivi un Oggetto in una classe, io in una serie di una grande matrice. Stesso oggetto e stesse proprietà. Non è più un oggetto? Sparisce?).

No. L'oggetto è invariante come idea e si può descrivere in diversi modi. In una classe o in un array è una questione secondaria.

 
Реter Konow:

Alexey, perché hai deciso che l'Oggetto come concetto è legato a una sintassi e rappresentazione predefinita? Per alcune regole... Tu descrivi l'oggetto in una classe, io lo descrivo in una serie di una grande matrice. Stesso oggetto e stesse proprietà. Non è più un oggetto? Sparisce?).

No. L'oggetto è invariante come idea e si può descrivere in diversi modi. Se in una classe o in un array è una questione secondaria.

Peter - Oggetto, è un'entità integrale descritta da un certo tipo, o meglio definita da un certo tipo. All'oggetto può essere dato un nome arbitrario, l'oggetto può essere creato, trasferito, acceduto, distrutto.

var Button1 = GlobalArrayElement[10];

Non funziona così! Un riferimento a una posizione dell'array non può essere una variabile nominata!

Ma non voglio discutere con te, preferisco aspettare il risultato.

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

Non funzionerà nemmeno, perché tutte le variabili in mql sono strettamente tipizzate.

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

Peter - Un oggetto è un'entità completa descritta da un certo tipo, o meglio definita da un certo tipo. All'oggetto può essere dato un nome arbitrario, l'oggetto può essere creato, trasferito, gestito, distrutto.

Non funziona così! Un riferimento a una posizione dell'array non può essere una variabile nominata!

Ma non voglio discutere con te, preferisco aspettare il risultato.

Ho sempre variabili che si riferiscono a posizioni di array (kernel). Il cursore cammina intorno all'interfaccia e gli elementi vengono messi a fuoco. Il loro numero viene scritto in una variabile e attraverso di essa accedo alla riga desiderata nel kernel in qualsiasi punto del programma. Inoltre, vari eventi sono attivati e i gestori trattano direttamente l'oggetto, l'elemento, la finestra e il parametro richiesti. Non ho visto niente di più efficiente qui.


Il mio approccio ha uno svantaggio - non è universale, in questo caso - è progettato per creare e gestire GUI. Funziona meglio di qualsiasi altro approccio, ma non l'ho mai usato al di fuori di questo settore.

 
Реter Konow:

Ho variabili che si riferiscono a posizioni di array (kernel) tutto il tempo. Il cursore cammina intorno all'interfaccia e gli elementi vengono messi a fuoco. Il loro numero viene scritto in una variabile e attraverso di essa accedo alla riga desiderata nel kernel in qualsiasi punto del programma. Inoltre, vengono attivati vari eventi e i gestori trattano direttamente l'oggetto, l'elemento, la finestra e il parametro richiesti. Non ho visto niente di più efficace qui.

Peter, non c'è bisogno di sostituire i concetti comuni. È la sostituzione che confonde la mente dei vostri avversari.

Tutte le vostre variabili si riferiscono a posizioni nell'array, ma non a oggetti. Non li avete; avete solo un array e le posizioni in esso. Non c'è bisogno di applicare un concetto come "oggetto" a un array di tipi primitivi.

Nella programmazione, i concetti di "Numero", "Stringa", "Data", "Booleano", "Funzione", "Variabile", "Classe", "Matrice", "Struttura", "Oggetto" non sono invarianti, come dici tu!

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

Peter, non c'è bisogno di sostituire i concetti accettati. È la sostituzione che confonde la mente dei vostri avversari.

Tutte le vostre variabili si riferiscono a posizioni nell'array, ma non a oggetti. Non li avete; avete solo un array e le posizioni in esso. Non c'è bisogno di applicare un concetto come "oggetto" a un array di tipi primitivi.

Nella programmazione, i concetti di "Numero", "Stringa", "Data", "Booleano", "Funzione", "Variabile", "Classe", "Matrice", "Struttura" e "Oggetto" non sono invarianti, come dici tu!

Pensate che una fila di proprietà in un array che descrive qualche entità specifica NON sia un oggetto?

E il numero di questa riga NON è un riferimento a un oggetto?

 
Реter Konow:

Pensate che una fila di proprietà in un array che descrive qualche entità specifica NON sia un oggetto?

E il numero di questa riga NON è un riferimento a un oggetto?

No, non è né un riferimento né un oggetto. Un riferimento è qualcosa che puoi mettere in una variabile. Avete un valore specifico che può essere messo in una variabile - un indice! L'indice non è la stringa dell'array stesso, è un numero specifico!

 
Non vedo l'ora di combattere :) .