Galleria di interfacce utente scritte in MQL - pagina 10

 

...E infine oggi, un'altra cosa sfacciata: una copia della finestra delle impostazioni di ME.


Qui è più facile capire quale finestra non è "reale").

 
Реter Konow #:

Sì, certo. Non è stato un problema.

Non chiedetemi come, non ricordo nulla.))))))

Nikolai risponderà meglio.

È sorprendente, perché anche il pannello incorporato di MQ fast trading ha un tale bug!

 
Aleksey Vyazmikin #:

Incredibile, perché anche il pannello integrato di MQ fast trading è dotato di un tale bug!

È sufficiente controllare le proprietà degli oggetti. L'algoritmo deve sapere su quale oggetto si trova il cursore e quale oggetto è "a fuoco". Modificare la proprietà dell'oggetto in basso in modo che non reagisca al cursore e al clic. Credo di sì, ma potrei sbagliarmi perché non ricordo. Sono passati anni.

 
Ricordo che il mio algoritmo ha disattivato lo scorrimento del grafico mentre il cursore si trovava sopra la mia finestra e stavo facendo scorrere qualcosa al suo interno. Poi, quando il cursore tornava nello spazio libero del grafico, l'algoritmo abilitava nuovamente lo scorrimento.
 
Реter Konow #:
Ricordo

Non possiamo guardarlo ora?

 
Aleksey Vyazmikin #:

Non possiamo guardarlo ora?

Ho decine di migliaia di righe di codice sparse in decine di file nel mio archivio, e non ricordo nulla.)))) Proverò a guardarlo con calma.

 
Реter Konow #:

Ho decine di migliaia di righe di codice sparse in decine di file nel mio archivio, e non ricordo nulla.)))))) Proverò a guardare con calma.

Oh, come ti capisco, anche io l'ho fatto su computer diversi... Quando cerchi di mettere tutto insieme, ti rendi conto che non capisci il significato del codice :) Ora ho iniziato a scrivere molti commenti nel codice - è comodo, anche se sembra un'inutile perdita di tempo quando si scrive il codice, ma quando ci torni sopra un anno dopo, aiuta molto.

 
Aleksey Vyazmikin #:

Oh come ti capisco, anch'io l'ho fatto su diversi computer..... quando si cerca di mettere tutto insieme ci si rende conto di non capire il significato del codice :) Ora ho iniziato a scrivere molti commenti nel codice - è comodo, anche se sembra un'inutile perdita di tempo quando si scrive il codice, ma quando ci si torna un anno dopo, aiuta molto.

Ho paura che se entro nell'archivio, la galleria non finirà mai, lol.)))))) C'è un costruttore lì, ed è molto facile creare nuove finestre su di esso. E se volessi finire l'editor visivo...? Allora sarò bloccato per mesi, e per cosa? ))))))

 
Aleksey Vyazmikin #:

... Ora ho iniziato a scrivere molti commenti nel codice: è comodo, anche se sembra un'inutile perdita di tempo quando si scrive il codice, ma quando ci si torna sopra un anno dopo, aiuta molto.

Sono completamente d'accordo sui commenti. Dovreste assolutamente scrivere delle spiegazioni nel codice.

 
Aleksey Vyazmikin #:
Non ho esperienza nello sviluppo di interfacce di questo tipo, ma quelle che ho usato da diverse fonti avevano un inconveniente significativo, ovvero che a volte(!) altri oggetti del grafico venivano cliccati attraverso di esse. Siete riusciti a risolvere questo problema?

Le mie interfacce erano, ovviamente, molto più semplici. Non ho usato Canvas, ma ho semplicemente costruito un pannello con controlli standard. Per evitare che gli altri oggetti del grafico si intravedessero, ho ridisegnato tutti i componenti della finestra una volta al minuto:

if (iTime(_Symbol,PERIOD_M1,0) > LastMinute && !IsTesting()) { 
   LastMinute = iTime(_Symbol,PERIOD_M1,0);
   for (int i = 0; i < 45 ; i++) {
      long tf = ObjectGetInteger(0, Controls[i], OBJPROP_TIMEFRAMES);
      if (ObjectSetInteger(0, Controls[i], OBJPROP_TIMEFRAMES, -1)) 
         ObjectSetInteger(0, Controls[i], OBJPROP_TIMEFRAMES, tf);
   }
}

Qui Controlli è un array contenente i nomi dei componenti.