GUI in crowdsourcing. Open beta testing. - pagina 30

 
Alexandr Andreev:

Perché, è anche implementabile attraverso una funzione che viene chiamata quando il campo è riempito e il valore di input è del tipo template... tutto. Anche se è come stringa.... non ci sarà ancora il riempimento ad alta velocità del campo

Non si tratta solo del campo di input. Per esempio, si vuole ottenere il valore corrente di una casella di controllo - controllare se è controllata o no.
Oppure, scoprire quale articolo nella lista della cassa è selezionato.
Oppure, scoprite su quale segno si trova la manopola del cursore.
Oppure, che valore ha la barra di avanzamento.
E così via.
Chiamare gli elementi dellafunzione non solo permette di ottenere il loro valore in qualsiasi momento, ma anche di impostare un nuovo valore.
Si può anche impostare il colore, lo stato (premuto, premuto, bloccato). Una chiamata di funzione di un singolo elemento permette una qualsiasi di queste azioni, in qualsiasi punto del codice utente.
 
Реter Konow:
Non si tratta solo del campo di input. Per esempio, avete bisogno di ottenere il valore corrente di una casella di controllo - controllare se è controllata o no.
Oppure, scoprire quale elemento della lista a comparsa è selezionato.
Oppure, scoprite su quale segno si trova la manopola del cursore.
Oppure, che valore ha la barra di avanzamento.
E così via.
Chiamare le funzioni degli elementi vi permette non solo di recuperare il loro valore in qualsiasi momento, ma anche di impostare un nuovo valore.
O, colore, stato (premuto, depresso, bloccato). Una chiamata di funzione a elemento singolo permette una qualsiasi di queste azioni in qualsiasi punto del codice utente.

Tutto questo è facile anche attraverso una chiamata di funzione sul fatto dell'impostazione. e ulteriore lavoro del programmatore.


Per quanto riguarda l'ambiente, mi piacerebbe vedere un certo insieme di norme di chiamata (senza cambiare il nome della funzione - perché non so in quale pezzo di codice potrei aver bisogno di questa o quella funzione) su tutti i tipi di segnalibri e finestre. selezione della finestra preferibilmente attraverso Select. Così come la selezione dello stile cambiando il colore al passaggio del mouse.

Cioè, dovete creare un prototipo di menu e usarlo per crearne un altro nel codice. Se dovessimo usare l'ambiente...

Qui, le meta-citazioni a volte rompono le estremità in alcuni frammenti di codice.

Qui, è auspicabile aggiungere un'ulteriore interfaccia dinamica che appare quando si clicca/hover.... E questa è una parte super piccola.

 
Реter Konow:
Non si tratta solo della casella di input. Per esempio, si vuole ottenere il valore corrente della casella di controllo - controllare se la casella di controllo è controllata o no.
Oppure, scoprire quale elemento della lista a comparsa è selezionato.
Oppure, scoprite su quale segno si trova la manopola del cursore.
Oppure, che valore ha la barra di avanzamento.
E così via.
Chiamare le funzioni degli elementi vi permette non solo di recuperare il loro valore in qualsiasi momento, ma anche di impostare un nuovo valore.
O, colore, stato (premuto, depresso, bloccato). Una chiamata di funzione a elemento singolo permette una qualsiasi di queste azioni in qualsiasi punto del codice utente.

Ma oltre a questo c'è una nozione comeCallback-functions, che genera eventi quando qualcosa viene cambiato. Per esempio c'è una casella di controllo sul modulo e abbiamo bisogno di sapere quando il suo stato cambia. Opzione 1: fare delle query alla GUI a intervalli regolari per ottenere il valore di questa casella, e se il valore è diverso allora la casella è cambiata. In questo caso, alcune risorse sono sprecate in un costante polling periodico - non è conveniente.

Per evitare lo spreco di risorse abbiamo inventato le cosiddette funzioni piggyback che ci danno una notifica quando il valore del controllo è cambiato. Per esempio, quando abbiamo cliccato su una casella di controllo fa cambiare il suo stato, e appena lo stato cambia viene generato un evento con tipo, nome e valore del controllo. E nella sottoscrizione a questo evento verrà già eseguito il codice necessario per aspettare che il valore della casella di controllo cambi. Questo è chiamato il modello degli eventi.

 
Alexandr Andreev:

tutto questo è anche facile attraverso una chiamata di funzione sul fatto dell'impostazione. e quindi il lavoro del programmatore.


Per quanto riguarda l'ambiente, mi piacerebbe vedere un certo insieme di standard per chiamare (senza cambiare il nome della funzione, perché non so in quale pezzo di codice potrei aver bisogno di questa o quella funzione) su tutti i tipi di schede e finestre. Così come la selezione dello stile cambiando il colore al passaggio del mouse.

Cioè, dovete creare un prototipo di menu e usarlo per crearne un altro. Se dovessimo usare l'ambiente...

Qui, le meta-citazioni a volte rompono le estremità in alcuni frammenti di codice.

qui, è auspicabile cambiare l'interfaccia aggiuntiva che appare quando si clicca/hover.... E questa è una parte super piccola.

OK. Tra qualche ora posterò un semplice esempio suggerito da Alexey. Sarà molto più chiaro del primo esempio.
 
Алексей Барбашин:

C'è anche una nozione comeCallback-functions, che genera eventi quando qualcosa cambia. Per esempio c'è una casella di controllo sul modulo e abbiamo bisogno di sapere quando il suo stato cambia. Opzione 1: fare delle query alla GUI a intervalli regolari per ottenere il valore di questa casella, e se il valore è diverso allora la casella è cambiata. In questo caso, alcune risorse sono sprecate in un costante polling periodico - non è conveniente.

Per evitare lo spreco di risorse abbiamo inventato le cosiddette funzioni piggyback che danno una notifica quando il valore del controllo è cambiato. Per esempio, quando si clicca su una casella di controllo è seguito dal cambiamento del suo stato, non appena lo stato è cambiato viene generato l'evento con tipo, nome e valore del controllo. E nella sottoscrizione a questo evento verrà già eseguito il codice necessario per aspettare che il valore della casella di controllo cambi. Questo è chiamato il modello degli eventi.

Beh, Alexey, stai parlando di una GUI esterna, interrogata dall'EA tramite un timer, dalla vecchia memoria. A quel tempo, avevate bisogno di callback. Ora, tutto avviene all'interno di un EA e invece della GUI esterna, ce n'è una interna. Il suo.

Ecco perché il motore è collegato da un file. Per rendere l'interfaccia nativa di Expert Advisors.

A proposito, è un bene che il motore sia scritto in russo. Potete immaginare quante coincidenze di nomi di variabili potrebbero verificarsi tra esso e l'Expert Advisor quando si connette ...
 
Реter Konow:
Beh, Alexey, stai parlando di una GUI esterna, interrogata dall'EA tramite un timer, dalla vecchia memoria. All'epoca, avevi bisogno di callback. Ora, tutto avviene all'interno di un unico EA e invece della GUI esterna, ce n'è una interna. Il suo.

Peter, in realtà, i colbec non sono una "vecchia memoria", ma una pratica comune per qualsiasi interazione, non necessariamente legata alla GUI, indipendentemente dal fatto che sia esterna o interna. E non importa dove avviene, la cosa principale è come avviene. Colbeck non è un timer!

Aspettando il video...

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

Peter, in realtà i colbi non sono un "vecchio ricordo" ma una pratica di lavoro comune di qualsiasi interazione, non deve essere necessariamente legata alla GUI, non importa se è esterna o interna. E non importa dove avviene, la cosa principale è come avviene.

Aspettando il video...

Sono d'accordo. Solo all'interno di una EA non ne avremo bisogno.
 
Реter Konow:
Beh, Alexey, stai parlando di una GUI esterna interrogata da EA via timer, da vecchia memoria. A quel tempo, avevamo bisogno di richiami. Ora, tutto avviene all'interno di un Expert Advisor e invece della GUI esterna, ce n'è una interna. Il suo.

Questo è il motivo per cui il motore è collegato con un file. Per rendere l'interfaccia nativa dell'Expert Advisor.

È più facile ricordare le proprie variabili che imparare quelle di qualcun altro.

Il codice in generale dovrebbe avere un minimo di variabili globali tutte implementate passando pezzi di memoria ed elaborando più valori in una volta. Ha senso che ..... .... .... HH ha cercato di tagliare le parole che si collegano direttamente agli oggetti.

In generale, è più facile usare i coloback regolari.

 
Alexandr Andreev:

Beh, è più facile ricordare le proprie variabili che imparare quelle di qualcun altro.

In generale, il codice dovrebbe avere un minimo di variabili globali tutte implementate passando pezzi di memoria ed elaborando più valori in una volta. Ha senso che ..... .... .... HH ha cercato di tagliare le parole legate direttamente agli oggetti.

In generale, è più facile usare i colback regolari.

PS hai ancora un sacco di lavoro di design da fare lì

 
Реter Konow:
Sono d'accordo. Solo all'interno di una EA non ne avremo bisogno.

Hmmm... allora una semplice domanda: come faccio a sapere se lo stato della casella di controllo è cambiato?