Galleria di interfacce utente scritte in MQL - pagina 5

 

Ancora un tentativo di integrare i controlli nelle tabelle. Più riuscito dei precedenti tentativi, ma lontano dall'essere il migliore.


 

Chiaramente portato al livello successivo qui....


 

Cavolo, questo è davvero scritto nel mio linguaggio di markup in MQL5.))

Ultima immagine per oggi. Continuazione domani.


 

Impressionante. È stato fatto molto lavoro!

Purtroppo, ho avuto un'esperienza negativa con gli elementi dell'interfaccia utente creati da sviluppatori di terze parti. La stragrande maggioranza delle finestre in cui mi sono imbattuto veniva visualizzata normalmente solo a una certa risoluzione del monitor e a un valore di ridimensionamento del 100% nelle proprietà di Windows. Alla risoluzione 4K e al 175% di ridimensionamento (il mio caso), i controlli diventavano illeggibili o si sovrapponevano l'uno all'altro.

A proposito, questo vale anche per le finestre create con l'aiuto delle classi UI incluse in MetaEditor.

Quando create le finestre, verificate sempre come appariranno a diverse risoluzioni dello schermo e valori di scala nelle impostazioni di Windows?

 
E38 controlli diventavano illeggibili o si sovrapponevano l'uno all'altro.

A proposito, questo vale anche per le finestre create con l'aiuto delle classi UI incluse nel pacchetto MetaEditor.

Quando create le finestre, verificate sempre come appariranno a diverse risoluzioni dello schermo e valori di scala nelle impostazioni di Windows?

Grazie.
All'epoca in cui ho sviluppato questa interfaccia utente, il formato 4K era nuovo e non diffuso come oggi, e questo problema non esisteva. Più precisamente, non ero a conoscenza dei costi del 4K perché nessuno ne aveva parlato. Tuttavia, anche se avessi incontrato questo problema, non sarei stato in grado di risolverlo a livello di MQL. Molto probabilmente, avrei consigliato all'utente di usare il monitor standard finché gli sviluppatori di MQ non avessero trovato una soluzione adeguata e non avessero aggiornato il linguaggio e il terminale. Poi avrebbe aggiornato la grafica.

Ma non si è arrivati a tanto).

Aggiunto:

Per quanto riguarda il controllo dell'aspetto delle finestre e dei pannelli a diverse risoluzioni dello schermo, non ho fatto tali controlli di proposito, in quanto non ci sono state lamentele e osservazioni tra i pochi utenti della mia UI. Forse sarebbero stati riscontrati dei problemi, ma ancora una volta - difficilmente sono stati risolti a livello di MQL.
 
Реter Konow #:
Grazie.
All'epoca in cui è stata sviluppata questa interfaccia utente, il formato 4K era nuovo, fresco e non diffuso come oggi, e questo problema non esisteva. Più precisamente, non ero a conoscenza dei costi del 4K perché nessuno ne parlava. Tuttavia, anche se avessi riscontrato questo problema, non sarei stato in grado di risolverlo a livello di MQL. Molto probabilmente, avrei consigliato all'utente di utilizzare il monitor standard finché gli sviluppatori di MQ non avessero trovato una soluzione adeguata e non avessero aggiornato il linguaggio e il terminale. Poi avrebbe aggiornato la grafica.

Ma non si è arrivati a tanto).

Aggiunto:

Per quanto riguarda il controllo dell'aspetto delle finestre e dei pannelli a diverse risoluzioni dello schermo, non ho fatto tali controlli di proposito, in quanto non ci sono state lamentele e osservazioni tra i pochi utenti della mia UI. Forse sarebbero stati riscontrati dei problemi, ma ancora una volta - difficilmente sono stati risolti a livello di MQL.
Nelle proprietà del terminale c'è il DPI del monitor per molto tempo e nella guida c'è un esempio di calcolo delle dimensioni degli oggetti grafici.
 
Artyom Trishkin #:
Nelle proprietà del terminale è presente il DPI del monitor per un lungo periodo e nella guida c'è un esempio di calcolo delle dimensioni degli oggetti grafici.
Quindi, se dovessi affrontare un problema del genere, potrei risolverlo facilmente. Tuttavia, come ho detto prima, non l'ho incontrato. Non ho ancora imparato a cercare le soluzioni prima dei problemi emergenti, ma ci provo molto)).

A proposito, ci sono esempi di soluzione del problema 4K anche nella guida?
 
Реter Konow #:
Gli esempi di risoluzione del problema 4K sono presenti anche nella guida?

Di quale problema stiamo parlando?

 
Artyom Trishkin #:

Di che tipo di problema stiamo parlando?

Quello del post #44.

Tra l'altro, è strano che la soluzione dell'aiuto di cui parli non sia applicata nella libreria UI nativa di ME, ... a giudicare dalle parole della persona sopra.
 
Реter Konow #:
Quello del post #44.

A proposito, è strano che la soluzione dell'aiuto di cui parli non sia applicata nella libreria UI nativa di ME, ... a giudicare dalle parole della persona sopra.

Qui(TERMINAL_SCREEN_DPI):

Unesempio di calcolo del fattore di scala:

//--- создаём кнопку шириной 1.5 дюйма на экране
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // получим DPI монитора пользователя
int base_width = 144;                                      // базовая ширина в экранных точках для стандартных мониторов c DPI=96
int width      = (button_width * screen_dpi) / 96;         // вычислим ширину кнопки для монитора пользователя (с учётом его DPI)
...
 
//--- вычисление коэффициента масштабирования в процентах
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96;
//--- использование коэффициента масштабирования
width=(base_width * scale_factor) / 100;

Se utilizzato in questo modo, la risorsa grafica avrà la stessa dimensione a occhio su monitor con risoluzioni diverse. Allo stesso tempo, le dimensioni degli elementi di controllo (pulsanti, finestre di dialogo, ecc.) corrisponderanno alle impostazioni di personalizzazione.

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Идентификаторы для получения информации о клиентском терминале функциями TerminalInfoInteger() и TerminalInfoString() . В качестве параметра эти...