Classi per creare pannelli e dialoghi

 

Queste sono le classi. Ci sono, naturalmente, molte domande, anche troppe. Ma uno è il principale al momento.

Non c'è modo di creare un pannello sul grafico dei prezzi dall'indicatore nella sottofinestra?

 
Dmitry Fedoseev:

Queste sono le classi. Ci sono, naturalmente, molte domande, anche troppe. Ma uno è il principale al momento.

Non c'è modo di creare un pannello su un grafico di prezzo da un indicatore in una sottofinestra?

Non è (\MQL5\Indicators\Examples\Panels\SimplePanel\SimplePanel.mq5)?

EURUSDM1

 
Vladimir Karputov:

Non è questo (\MQL5\Indicators\Examples\Panels\SimplePanel\SimplePanel.mq5)?

Non lo è. L'indicatore stesso è disegnato nella sottofinestra, mentre il pannello deve essere creato sul grafico dei prezzi. Non c'è nessuna reazione al parametro subwin. A giudicare dal codice in Dialog.mqh, non dovrebbe:

bool CAppDialog::CreateIndicator(const int x1,const int y1,const int x2,const int y2)
  {
   int width=m_chart.WidthInPixels();
//--- geometry for the minimized state
   m_min_rect.LeftTop(0,0);
   m_min_rect.Width(width);
   m_min_rect.Height(CONTROLS_DIALOG_MINIMIZE_HEIGHT-2*CONTROLS_BORDER_WIDTH);
//--- determine subwindow
   m_subwin=ChartWindowFind();

Ho già trovato un modo per uscire da questa situazione, molto complicato (e molto insolito, sarà nell'articolo). Ma ancora il modo di pensare del creatore di queste classi è molto interessante.

 
Dmitry Fedoseev:

Sbagliato. L'indicatore stesso disegna nella sottofinestra, ma il pannello deve essere creato sul grafico dei prezzi. Non c'è nessuna reazione al parametro subwin. A giudicare dal codice in Dialog.mqh non dovrebbe:

bool CAppDialog::CreateIndicator(const int x1,const int y1,const int x2,const int y2)
  {
   int width=m_chart.WidthInPixels();
//--- geometry for the minimized state
   m_min_rect.LeftTop(0,0);
   m_min_rect.Width(width);
   m_min_rect.Height(CONTROLS_DIALOG_MINIMIZE_HEIGHT-2*CONTROLS_BORDER_WIDTH);
//--- determine subwindow
   m_subwin=ChartWindowFind();

Ho già trovato un modo per uscire da questa situazione, molto complicato (e molto insolito, sarà nell'articolo). Ma ancora il modo di pensare del creatore di queste classi è molto interessante.

Non l'ho fatto - se l'indicatore crea un pannello basato su classi per la creazione di finestre e pannelli, lo fa nella propria finestra. Probabilmente c'è anche un link per ricevere gli eventi.
 

È stato scoperto un altro difetto. Creo un pannello dall'indicatore sul grafico dei prezzi, e se c'è un indicatore nella sottofinestra del grafico, il pannello si blocca.

Un regalo dall'inferno, non classi per creare pannelli e dialoghi.

 

Come dovrebbe essere l'interfaccia grafica? Quali controlli pensate di utilizzare? Posso aiutare a fare una GUI per tutti gli articoli in cui ne hai bisogno, usando la mia versione.

Ecco l'ultima versione (build 4) della libreria:Graphic Interfaces X: Standard Graphics Element (build 4)

Se siete interessati, continueremo in privato.

 
Anatoli Kazharski:

Come dovrebbe essere l'interfaccia grafica? Quali controlli pensate di utilizzare? Posso aiutare a fare una GUI per tutti gli articoli in cui ne avete bisogno, usando la mia versione.

Ecco l'ultima versione (build 4) della libreria:Graphic Interfaces X: Standard Graphics Element (build 4)

Se siete interessati, continueremo in privato.

Non so cosa dovrebbe essere. Guardando qui il numero di argomenti con GUI, ho pensato che forse Roche ha deciso di rendere popolari le classi standard per creare pannelli e finestre di dialogo. Non devono essere popolarizzati, devono essere dimenticati per sempre.

Se non ci sono requisiti speciali per gli articoli sulla creazione di GUI (spero che Roche risponda prima o poi), posso creare qualcosa io stesso. Posso leggere anch'io i suoi articoli. Ma non sono abituato a dare la colpa dei miei problemi a qualcun altro.

 
Dmitry Fedoseev:

...

Posso leggere io stesso i suoi articoli. È solo che non ho l'abitudine di dare la colpa dei miei problemi a qualcun altro.

Non è complicato. Insomma, non mi porterebbe via molto tempo. Inoltre, è interessante per me.

Solo un minuto e il modello di indicatore sulla questione in questo thread è pronto:

//---

L'archivio con i file è nel trailer.

File:
Test.zip  3 kb
 
Anatoli Kazharski:

Non è difficile lì. Non ci vorrebbe molto tempo.

Letteralmente un minuto e il modello di indicatore per la domanda in questo thread è pronto:

//---

Un archivio con i file nel trailer.

Anatoly, tu e MQ non avete discusso di aggiungere le tue classi alla libreria standard? Hai fatto un gran lavoro + articoli, tutto è bello, mentre la libreria standard non brilla con essa.

O lo faresti come alternativa...

 
Alexey Kozitsyn:

Anatoly, tu e MQ non avete ancora parlato di aggiungere le tue classi alla libreria standard? Hai fatto così tanto lavoro + articoli - tutto è bello, e la libreria standard non brilla con esso.

O lo faresti come alternativa...

Ne avete già uno in alternativa. Ma per includerlo nella libreria standard c'è molto da fare. Non vorrei mettere in circolazione un prodotto mezzo matto. Allo stadio attuale di attuazione non sono d'accordo, anche se tutti dicono di sì.
 
Anatoli Kazharski:

Non è difficile lì. Cioè, non occuperebbe molto del mio tempo. Inoltre, è interessante per me.

Letteralmente un minuto e il modello di indicatore per la domanda in questo thread è pronto:

//---

L'archivio con i file è nel trailer.

OK bene, chiederò in giro. Ma tra un paio di giorni. Ha bisogno di riposare per un po', si è surriscaldato. Sì, e vorrei avere una risposta da Roche sui requisiti dell'interfaccia grafica.

Anche se, se non ti dispiace, mostrami un template con una finestra, come nell'immagine sopra, con due campi di input con rotazioni, due elenchi a discesa e un pulsante. Naturalmente, gli eventi dovrebbero essere gestiti, e un esempio di codice su come ridimensionare la finestra sarebbe anche bello.

Il punto principale del mio compito è che ho bisogno di cambiare al volo una serie di controlli sul modulo.