Il mio approccio. Il nucleo è il motore. - pagina 41

 

Negli ultimi 2 anni ho avuto la sensazione di non vivere, ma non so dove sono per essere onesto.

Mi sono tagliato le vene (nel senso della lunghezza, posso mandarvi delle foto), ora non so se sono vivo o no - ma il topic di Peter dice che non lo sono. :(

Sono nella matrice :(
 
Vladimir Gribachev:

Da 2 anni ho la sensazione di non vivere, ma non so dove sono.

Mi sono tagliato le vene (nel senso della lunghezza, posso mandarvi delle foto), ora non so se sono vivo o no - ma il topic di Peter dice che non lo sono. :(

Deve essere brutto - sono nella matrice :(

Vladimir Gribachev:

Non so come sia.

ma l'ho sognato - il motore centrale

Oh, merda!

Devo tornare al manicomio per riposare.

Compagno, non scherzare così).

Anche a me non dispiacerebbe fluffare, ma ho paura della rabbia giusta. Immagino che tu non lo sia. Mi sorprende il tuo autocontrollo, con una tale valutazione e numero di prodotti sul mercato =))
 
Ilya Malev:
Anche a me non dispiacerebbe un po' di battute, ma ho paura dell'ira dei giusti. Immagino che tu non lo sia. Mi sorprende la tua moderazione, con una tale valutazione e il numero di prodotti sul mercato =))

La rabbia degli amministratori - è giustificata.

Ho visto un sacco di divieti, ma quando leggi tutte le stronzate che scrivono, ti rendi conto che, sì, non è abbastanza per uccidere.

Se mi sbaglio su qualcosa, sei il benvenuto.

 
Ilya Malev:

Compagno, non scherzare così.

Grazie per mantenere viva la storia. felicità, salute, amore, prosperità, molti soldi, due Porsche rosse e una casa in Polonia.

 
Vladimir Gribachev:

grazie per aver conservato la storia. felicità, salute, amore, prosperità, molti soldi, due Porsche rosse e una casa in Polonia.

Scusa, abitudine professionale.

P.S. E grazie per aver cancellato i post a cui ho risposto senza citarli

 

Come promesso, ecco la seconda demo del motore. Questo motore si collega a un Expert Advisor di prova (file allegato sotto) e gli passa le azioni dell'utente.

  1. La finestra del motore ha due schede. Nella scheda "Cartelle di gruppo", c'è una voce per minimizzare il gruppo "G_FOLDER". Cliccando su di esso, la tabella apparirà/scomparirà.
  2. Nella scheda "Appearance controller", ci sono due pulsanti. Ognuno controlla l'aspetto di un testo diverso. Cliccando su di essi, un testo apparirà e l'altro scomparirà.
Installazione:
  1. In allegato ci sono due file di connessione (Connessione esterna e Proprietà di connessione). Devono essere installati nella cartella inlud. (invece di quelli precedenti, se ci sono).
  2. Installate il motore nella cartella degli indicatori (al posto di quella vecchia, se c'è), e mettetelo sul grafico.
  3. Installa l'Expert Advisor di prova sul grafico. (Il file è allegato qui sotto, se non c'è. Installalo nella cartella Experts, apri, salva, compila e mettilo sul grafico).

Dopo queste procedure, è possibile testare la connessione dell'EA di prova.

Quando si clicca su elementi della tabella, si inserisce del testo o si seleziona un'opzione, il test Expert Advisor mostrerà un messaggio di avviso con commenti sull'evento.

Potete esaminare la struttura del file Externals Connection. È molto semplice.

Il file delle proprietà di connessione NON deve essere aperto o modificato.



SZY. C'è anche un file di codice della finestra in fondo, per coloro che sono interessati ad impararlo.

 
Dmitry Fedoseev:

Provate a far apparire una serie di controlli quando cliccate su un pulsante e un'altra serie di controlli quando cliccate su un altro pulsante. Allo stesso tempo, la finestra può essere minimizzata e massimizzata. Si presume anche che ci possano essere molte varianti.

Sarebbe interessante chiedere a Peter come potrebbe risolvere questo compito.

Qui, Dimitri, nell'esempio di cui sopra lavorano contemporaneamente tre principi di controllo del fenomeno degli elementi:

  1. Cambiare scheda.
  2. Mostrare/nascondere gruppi di elementi con un elemento G_FOLDER.
  3. Mostrare/nascondere gruppi o elementi individuali usando un controllo fenomeno.

Lalibreria standard (per quanto ho capito) non ha queste caratteristiche.

Schede, pulsanti, pulsanti radio, elementi e altri elementi possono essere commutati usando SWITCH.

SWITCH, "Элемент 1","Элемент 2","Элемент 3","Элемент 4",..., END,

Il blocco di gruppi di elementi o di elementi individuali si fa con BLOCKS.

"Элемент 1",BLOCKS,"Элемент 2","Элемент 3","Элемент 4",..., END,

Il fenomeno del gruppo è controllato dall'elemento G_FOLDER.

//Объявляем элемент G_FOLDER:
//----------------------------------------------------------------------------------
GROUP,A,

__,  G_FOLDER, "Group opener 1",  

END_GROUP,
//--------------------------------------------
i,IN,"V1",                       <------------- Устанавливаем канвас на котором рисуем группу элементов.
i, AT, LEFT_TOP, 1,20,           <------------- Устанавливаем позицию группы элементов.

//Устанавливаем свойства элементов типа G_FOLDERS внутри группы:
i,G_FOLDERS, N_COLOR, (int)C'245,245,245',   N_COLOR, (int)C'245,245,245',  AH_COLOR, (int)C'245,245,245',  NH_COLOR, (int)C'245,245,245', END,
//----------------------------------------------------------------------------------
//Делаем таблицу:
//----------------------------------------------------------------------------------
GROUP,A, IS_TABLE,  ROOT,"Group opener 1", <------------------- Устанавливаем привязку явления группы к элементу "Group opener 1", (который является G_FOLDER)


__,     T_HEADER, "The name of the table", H,30,   C_HEADER, "Text cells", C_HEADER, "Checkbox cells",  C_HEADER, "R button cells", C_HEADER, "C list cells",      C_HEADER, "Edit cells", 
__,     R_HEADER, "Row header 1",    T_CELL, "text 1", CHECKBOX, "Checkbox cell 1",    R_BUTTON, "R button cell 1", C_LIST, "C list cell 1",    EDIT, "Edit cell 1",     
__,     R_HEADER, "Row header 2",    T_CELL, "text 2", CHECKBOX, "Checkbox cell 2",    R_BUTTON, "R button cell 2", C_LIST, "C list cell 2",    EDIT, "Edit cell 2",  
__,     R_HEADER, "Row header 3",    T_CELL, "text 3", CHECKBOX, "Checkbox cell 3",    R_BUTTON, "R button cell 3", C_LIST, "C list cell 3",    EDIT, "Edit cell 3",       
__,     R_HEADER, "Row header 4",    T_CELL, "text 4", CHECKBOX, "Checkbox cell 4",    R_BUTTON, "R button cell 4", C_LIST, "C list cell 4",    EDIT, "Edit cell 4", 

END_GROUP,
//----------------------------------
i,  IN, "V1",
i, Y_GAP,-1,
i, X_GAP,-1,

//Устанавливаем свойства элементов типа CHECKBOXES, R_BUTTONS, EDITS внутри группы:
//---------------------------------------------------------------------------------
i, CHECKBOXES, POINTED,0, END, 
i, R_BUTTONS,  POINTED,0, END, 
i, EDITS, POINTED,0, END, 

//Устанавливаем переключение радио-кнопок внутри таблицы:
//---------------------------------------------------------------------------------
"Radio buttons option",SWITCH, "R button cell 1", "R button cell 2","R button cell 3","R button cell 4",  END,

i,IS_ZEBRA_STYLE, <-----------------------------------Устанавливаем стиль Зебра.
i, AT, _X2X, "V1", 4, _Y2H,"Group opener 1", 5,<-----------------------------------Устанавливаем позицию группы относительно сворачивателя.
//----------------------------------------------------------------------------------

Bene, quanto codice dovreste scrivere per fare una cosa del genere con l'aiuto della libreria standard?

Questo è ciò che distingue un linguaggio di marcatura da una biblioteca. Leggerezza e velocità.

 
Реter Konow:

Qui, Dimitri, nell'esempio di cui sopra, tre principi di controllo del fenomeno degli elementi lavorano contemporaneamente:

  1. Cambiare scheda.
  2. Mostrare/nascondere gruppi di elementi usando l'elemento G_FOLDER.
  3. Mostrare/nascondere gruppi o elementi individuali usando un controllo fenomeno.

Lalibreria standard (per quanto ho capito) non ha queste caratteristiche.

Schede, pulsanti, pulsanti radio, elementi e altri elementi possono essere commutati usando SWITCH.

Il blocco di gruppi di elementi o di elementi individuali si fa con BLOCKS.

Il fenomeno del gruppo è controllato dall'elemento G_FOLDER.

Bene, quanto codice dovreste scrivere per fare una cosa del genere con l'aiuto della libreria standard?

Questo è ciò che distingue un linguaggio di marcatura da una biblioteca. Leggerezza e velocità.

Le schede non sono affatto un controllo interessante - si può vivere benissimo senza di esse. Il numero di schede è troppo limitato.

E 2 e 3 - più lontano nel bosco, più legna da ardere. Non ho la minima idea di cosa sia e perché sia necessario, e non ho intenzione di scoprirlo. Perché un insieme di controlli veramente necessari ed essenziali è stato definito molto tempo fa ed è più che sufficiente per qualsiasi compito di creazione di gui. Ma questo sembra un culto - inventare i propri nomi, metodologie, definizioni... ecc.

Voglio ricordarti ancora una volta che una tale implementazione separata della gui in un indicatore per il controllo di un EA non richiede la connessione di nulla all'EA... anche se si usano array invece di OOP. Quindi, l'approccio è storto. È storto dove dovrebbe essere più perfettamente pensato, perché questo è, si può dire, il "volto del prodotto".

 
Dmitry Fedoseev:

Le schede non sono affatto un controllo interessante; si può vivere benissimo senza di esse. Il numero di schede è troppo limitato.

E 2 e 3 sono più in profondità nel bosco e più grande è la legna da ardere. Non ho idea di cosa sia e perché sia necessario, e non ho intenzione di scoprirlo. Perché un insieme di controlli veramente necessari ed essenziali è stato definito molto tempo fa ed è più che sufficiente per qualsiasi compito di creazione di gui. Ma questo sembra un culto - inventare i propri nomi, metodologie, definizioni... ecc.

Voglio ricordarti ancora una volta che una tale implementazione separata della gui in un indicatore per il controllo di un EA non richiede la connessione di nulla all'EA... anche se si usano gli array invece di OOP. Quindi, l'approccio è storto. È storto dove dovrebbe essere più perfettamente pensato, perché è, si potrebbe dire, il "volto del prodotto".

Le schede cambiano completamente le tele. Ma il secondo e il terzo approccio sono progettati per gestire il fenomeno degli elementi senza cambiare le kanvase. Quindi, lo stesso kanvas viene ridisegnato e ogni volta con un diverso insieme di elementi.

Per quanto riguarda la connessione, non capisco la tua idea. Perché non dovrebbe essere collegato all'EA? Come si possono sincronizzare i parametri?

La GUI è completamente nell'Expert Advisor o è collegata dall'esterno. Nel caso della connessione esterna, è necessario impostare le proprietà di connessione e sincronizzare i valori dei parametri su entrambi i lati.

 

La GUI tolta da un Expert Advisor a un indicatore è una cosa discutibile (proprio a causa dell'architettura di MT - gli indicatori lavorano nel thread dell'interfaccia e possono rallentare TUTTO. Per gli indicatori di non rallentare, anche parte delle loro funzioni è vietata in MT)

non su questo.

Se un utente miserabile ha preso un paio di indicatori (di terze parti) e un EA e sono tutti GUI con il kernel-engine fuori dai piedi. Cosa succederà?

PS/ Peter, hai già trovato almeno l'hosting gratuito e ci hai messo il tuo prodotto. Se il codice base non è buono. La pubblicazione delle versioni alfa/beta/preview richiede un paio d'ore. Non riesci a trovare il tempo?