Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Mi scuso per la disinformazione, ho scritto prima che non si può chiamare il metodo Create() in una classe figlia.
Ora, ricontrollato, è possibile. Ma l'accesso al membro privato m_button non era disponibile. Cioè era impossibile controllare, per esempio, lo stato del pulsante: premuto/rilasciato.
Ora con il suggerimento di Igor è possibile.
Non ci sono problemi con i pulsanti, non ricordo, ma questa classe aveva metodi pronti ( non campi ) - per determinare lo stato, se no, controllare IsActive() o PropFlags() o StateFlags() - c'era sicuramente qualcosa di pronto per scoprire cosa sta succedendo al pulsante ora
Vi dirò il secondo trucco con la grafica in MQL - potete scoprire il nome del pulsante ( Name()) e per nome trovarlo e ottenere lo stato tramite ObjectGetInteger() e altre funzioni, ma per evitare di farlo in modo goffo, scrivete nella vostra classe metodi per ottenere le proprietà tramite ObjectGetInteger()
così ;)
PS: anch'io ho lottato con SB - non riuscivo a trovare perché le caselle di controllo diventassero selezionate dopo aver minimizzato e massimizzato il pannello - come se il mouse fosse cliccato sull'oggetto... quando ho capito che non volevo rileggere tutto SB, ho creato il mio gestore, che dopo aver minimizzato il modulo avrebbe impostato tramite ObjectSetInteger() la proprietà dell'oggetto deselezionato per le mie caselle di controllo
non c'è nessun problema con le battaglie, non mi ricordo, ma questa classe aveva metodi ready ( non campi ) - per determinare lo stato, se non lo è, allora controlla IsActive() o PropFlags() o StateFlags() - esattamente ciò che era ready lì per scoprire cosa c'è con il pulsante ora
Vi dirò il secondo trucco con la grafica in MQL - potete scoprire il nome del pulsante ( Name()) e per nome trovarlo e ottenere lo stato tramite ObjectGetInteger() e altre funzioni, ma per evitare di farlo in modo goffo, scrivete nella vostra classe metodi per ottenere le proprietà tramite ObjectGetInteger()
così ;)
PS: anch'io ho lottato con SB - non riuscivo a trovare perché le checkbox diventassero selezionate dopo aver minimizzato e massimizzato il pannello - come se il mio mouse fosse cliccato sull'oggetto... Ho deciso che non volevo rileggere l'intera cosa - ho costruito il mio gestore che, dopo aver minimizzato il modulo, ha impostato la proprietà oggetto deselezionato per le mie checkbox tramite ObjectSetInteger().
Anch'io ho incontrato questo problema. Avevo bisogno di colorare la finestra di dialogo con i miei colori. Anche loro si sono rivelati nascosti nella sezione privata. Sono riuscito a risolverlo usando un metodo che utilizza ObjectGetInteger() per dipingere direttamente i pannelli. E dopo aver minimizzato e dispiegato era anche un casino.
Ecco come appare l'intestazione prima di essere minimizzata:
E questo è dopo.
Non sono anche riuscito a trovare perché il colore predefinito viene restituito sui pulsanti di chiusura e di collasso.
Ho incontrato anche questo. Avevo bisogno di colorare la finestra di dialogo della SB con i suoi colori. Si è scoperto che erano nascosti anche nella sezione privata. Sono riuscito a risolverlo usando un metodo che usa ObjectGetInteger() per dipingere direttamente il pannello. E dopo aver minimizzato e dispiegato era anche un casino.
Ecco come appare l'intestazione prima di essere minimizzata:
E questo è dopo.
Non sono anche riuscito a trovare il motivo per cui viene restituito il colore predefinito sui pulsanti di chiusura e di collasso.
Ancora una volta ho guardato lo std locale e mi sono convinto della giusta decisione di scrivere la mia libreria)))
Ho scritto del momento del pulsante qui, estratto da lì:
Finché si preme il pulsante lentamente, circa una volta al secondo, funziona bene. Inizia a spingere un po' più velocemente e spesso l'evento non viene intercettato.
Avete notato questi problemi nella vostra biblioteca? Vorrei sapere se è l'implementazione di SB o l'architettura di gestione degli eventi e non c'è modo di aggirare il problema?
... Vorrei sapere, è questa l'implementazione dell'SB o è l'architettura di gestione degli eventi e non c'è modo di aggirarla?
Potete creare voi stessi un pulsante come oggetto grafico senza usare la libreria e confrontare il suo funzionamento con un pulsante creato con la libreria.
Potete creare voi stessi un pulsante come oggetto grafico senza usare la libreria, e confrontare il suo funzionamento con un pulsante creato usando la libreria.
Ho scritto qui il momento con i pulsanti, estratto da lì:
Avete notato questi problemi nella vostra biblioteca? Mi piacerebbe sapere se è l'implementazione di SB o l'architettura di gestione degli eventi e non si può aggirare?
Se stai scrivendo per te stesso (non nel mercato), è più facile fare finestre con pulsanti in C# e chiamare da MQL .dll in C# - qualsiasi fantasia con pulsanti, icone, caselle di controllo, ecc. è realizzata in C# in mezz'ora - un'ora, ma ho dovuto cercare su Google materiale per una settimana.
L'unica cosa che dovete fare è guardare la barra che avete nella directory del Terminale e usarla per creare la vostra interfaccia - è la mia esperienza, ho imparato tutto quello che c'è da sapere su di essa
SZS: mi sono appena ricordato, ho messo un semplice pannello nel codebase, non ci sono pulsanti, ma ci sono etichette di testo e il codice è il più semplice possibile. https://www.mql5.com/ru/code/25897
Potete creare voi stessi un pulsante come oggetto grafico senza usare la libreria e confrontare le sue prestazioni con un pulsante creato con la libreria.
Sì, preso da un vecchio lavoro, quando non lavoravo con SB, ho fatto una specie di pulsante di chiusura. Funziona rapidamente:
Si scopre che il problema è nell'implementazione di SB.
Sì, preso da un vecchio lavoro quando non lavoravo con SB, ho fatto una specie di pulsante di chiusura. Funziona rapidamente:
Si scopre che il problema è nell'implementazione di SB.
Lalibreria standard implica che i controlli siano creati nel modulo. Non dovrebbero funzionare affatto, proprio così. Almeno, così era una volta.
Se stai scrivendo per te stesso (non nel mercato), allora è più facile fare finestre con pulsanti in C# e chiamare da MQL .dll in C# - qualsiasi fantasia con pulsanti, caselle di controllo, ecc. può essere realizzata in C# in mezz'ora - ora, ma ho dovuto cercare su Google materiale per una settimana.
L'unica cosa che dovete fare è guardare la barra che avete nella directory del Terminale e usarla per creare la vostra interfaccia - è la mia esperienza, ho imparato tutto quello che ho bisogno di sapere su di essa
ZS: Sì, mi ricordo, ho messo un semplice pannello in codebase, non ci sono pulsanti, ma ci sono etichette di testo e il codice è il più semplice possibile. https://www. mql5.com/ru/code/25897
No, non conosco C#.
Darò un'occhiata al pannello, grazie.