Classi per creare pannelli e dialoghi - pagina 2

 
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 una via d'uscita, molto complicata (e molto insolita, sarà nell'articolo). Ma ancora il modo di pensare del creatore di queste classi è molto interessante.

Per creare un indicatore SimplePanel sulla finestra principale del grafico invece di una sottofinestra, è sufficiente scrivere #property indicator_separate_window invece di #property indicator_chart_window

 
Dmitry Fedoseev:

D'accordo, bene, chiederò in giro. Ma tra un paio di giorni. Ho bisogno di riposare, sono surriscaldato. E vorrei una risposta da Roche sui requisiti dell'interfaccia grafica.

Anche se, se non vi dispiace, mostratemi un modello con una finestra, come nella foto sopra, con:

  • due campi di input
  • due campi di input con rotazioni
  • due elenchi a discesa
  • pulsante

Naturalmente gli eventi devono essere gestiti, e anche un esempio di codice su come ridimensionare la finestra sarebbe bello.

Il punto principale del mio compito è cambiare al volo un insieme di controlli sul modulo.

I primi due campi di input dovrebbero essere per l'input di testo? Purtroppo sarà solo nella prossima versione e non posso ancora dire quando sarà pubblicata. Il materiale è quasi pronto, ma non ho ancora iniziato a scrivere l'articolo.

 
Slawa:

Per creare un indicatore SimplePanel sulla finestra principale del grafico invece di una sottofinestra, basta scrivere #property indicator_separate_window invece di #property indicator_chart_window

Se allo stesso tempo ci sarà qualche indicatore nella sottofinestra, il pannello avrà un glitch. Ne ho già scritto qui.
 
Anatoli Kazharski:

I primi due campi di input dovrebbero essere per inserire del testo? Purtroppo sarà solo nella prossima versione, e non posso ancora dire quando sarà pubblicata. Il materiale è quasi pronto, ma non ho ancora iniziato a scrivere l'articolo.

Come mai? La casella di input è l'inizio dell'inizio. Abbiamo la casella di rotazione, ma non il campo di inserimento.

In generale si dovrebbero guidare i parametri int e diverse varianti di enumerazioni standard: tipo di media, prezzo (per questo l'elenco a discesa). Ma solo se la biblioteca non fornisce l'elementare, non so. Non so se ne vale la pena. Non so se ne vale la pena, perché qualcun altro sbatta la testa contro il muro.

 
Dmitry Fedoseev:

Com'è possibile? La casella di input è l'inizio dell'inizio. SpinBox c'è, il campo di input no.

Generalmente dovreste guidare i parametri int e diverse varianti di enumerazioni standard: tipo di media, prezzo (per questo l'elenco a discesa). Ma solo se la biblioteca non fornisce l'elementare, non so. Non so se ne vale la pena. In modo che qualcun altro sbattesse la testa contro il muro dopo.

Ecco come è andata a finire. Non ne ho ancora avuto bisogno da nessuna parte nel mio sviluppo, e solo recentemente ho ricevuto una richiesta da diversi utenti per un campo di input di testo.

La biblioteca si sta sviluppando. A poco a poco tutto ciò di cui hai bisogno sarà lì. )

 
Dmitry Fedoseev:

...

Generalmente, parametri int e alcune opzioni per l'enumerazione standard: tipo di media, prezzo (per questo, un elenco a discesa).

E nel campo di testo, quali parametri devono essere inseriti?
 
Anatoli Kazharski:
E nella casella di testo, quali parametri devono essere inseriti?
Numeri int
 
Dmitry Fedoseev:
Numeri int

Giusto?

//---

P.S. Icampi di input per i numeri ci sono già adesso. Questa è la classe CSpinEdit. I campi di input di testo, classe CTextEdit, saranno disponibili nel prossimo aggiornamento(build 5).

 
Anatoli Kazharski:

Giusto?

//---

P.S. Icampi di input per i numeri ci sono già adesso. Questa è la classe CSpinEdit. I campi di input per il testo, classe CTextEdit, saranno nel prossimo aggiornamento(build 5).

Così
 
Dmitry Fedoseev:
Se c'è qualche indicatore nella sottofinestra, il pannello avrà un glitch. Ne ho già scritto qui.

Non c'è niente che non va. Quali sono i sintomi?

L'ho appena provato. Prima l'indicatore nella sottofinestra. Poi il pannello sul grafico. Poi un pannello simile nella sottofinestra. L'unica cosa che ho visto è SimplePanel2 nella prima sottofinestra. Ma non influisce sul funzionamento. Tutti i pulsanti sono stati premuti correttamente.

L'unica differenza tra SimplePanel2 e SimplePanel è la prop di indicator_chart_window

PS stiamo parlando di cinque o quattro?