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
Per parafrasare: vi ritroverete con un EA con un'interfaccia, anche se una parte è fatta da me e l'altra da voi. Questo non vi impedirà di mettere insieme le due parti in una sola EA.
Comunque, questo è quello che faremo. Pubblicherò il costruttore e insegnerò come progettare su di esso qui gui. Non c'è ancora una documentazione, quindi se siete interessati, tenete d'occhio il tutorial.
Ricevuto!
Non ho registrato un video, ma vi mando un esempio.
ci sono 600 elenchi a discesa.
Muovi il mouse - con ogni evento e cambio di colore il CCanvas complessivo viene ridisegnato.
Puoi vedere la dimensione finale nelle proprietà della bitmap - 1500x600 px (rispetto al tuo 800x500 e 250ms di ritardo). Il che equivale a 900.000 pixel, e tutti vengono ridisegnati istantaneamente. Nessun secondo è fuori questione.
Ogni lista è resa prima sulla sua tela nella sua propria dimensione (per non farla traboccare) e poi viene arata sull'insieme. Quindi abbiamo 600 chiamate ResourceCreate per ogni evento del mouse.
Questo significa, come si può vedere dalla velocità di reazione, che i fotogrammi sono sufficienti per mostrare i cartoni animati.
Gli sviluppatori di MT hanno dato uno strumento soddisfacente senza lag (intendo ResourceCreate bitmap)
È possibile vedere questo esempio in open source?
È triste che il progetto sia andato in modalità chiusa (
Non è andato da nessuna parte.
È possibile vedere questo esempio in open source?
Cosa non capisci dei kanvas?
1. Reagisce agli eventi come tutti gli altri oggetti grafici. In altre parole, è possibile tracciare le coordinate del mouse mentre si muove, reagire agli eventi di clic del mouse e della tastiera.
2. può cambiare indipendentemente il colore di ogni pixel.
Di cos'altro avete bisogno? E poi ci vuole un po' di cervello e la volontà di perdere un sacco di tempo inutilmente.
Cosa non capisci del lavoro con un kanvas?
1. reagisce agli eventi come tutti gli altri oggetti grafici. Cioè, potete tracciare le coordinate del mouse mentre si muove, reagire agli eventi di clic del mouse e della tastiera.
2. può cambiare indipendentemente il colore di ogni pixel.
Di cos'altro avete bisogno? La prossima cosa di cui hai bisogno è un po' di cervello e il desiderio di perdere un sacco di tempo.
Beh kanvas stesso non reagisce agli eventi. E il fatto che si possa cambiare ogni pixel è evidente.
Ero interessato all'implementazione di un ridisegno frammentato della tela.
Ma sembra che molti abbiano deciso di ridipingere completamente la tela anche se deve essere ridisegnata solo in una piccola parte, cioè un singolo controllo.
Beh, il kanvas stesso non reagisce agli eventi. E il fatto che si possa cambiare ogni pixel è chiaro.
Ero interessato all'implementazione del ridisegno frammentario della tela.
Ma sembra che molti si siano accontentati della riverniciatura completa della tela anche se deve riverniciare solo una piccola parte, cioè un controllo.
La tela stessa non reagisce agli eventi, ma non esiste da sola.
Ridisegno frammentario - vale la pena iniziare a farlo e diventerà più chiaro se c'è un tale obiettivo. Penso che ci dovrebbe essere un array di controlli, ogni controllo ha confini definiti. Quando hai bisogno di ridisegnare un controllo, devi passare attraverso tutti i controlli, vedere cos'altro cade in quest'area e ridisegnare solo quelli. Almeno così.
Il kanvas stesso non è reattivo, ma non esiste da solo.
Ridisegno frammentato - vale la pena iniziare a farlo e diventerà più chiaro se c'è un tale obiettivo. Penso che ci dovrebbe essere un array di controlli, ogni controllo ha confini definiti. Quando hai bisogno di ridisegnare un controllo, devi passare attraverso tutti i controlli, vedere cos'altro cade in quest'area e ridisegnare solo quelli. Almeno così.
È esattamente così che l'ho costruito. Fondamentalmente ho preso la libreria standard come base, perché ha momenti molto ben lavorati di trasferimento di eventi e alcune altre cose. Anatoly crea raggruppamenti per ogni diversa classe di elementi, mentre in quello standard tutto è ridotto a un oggetto di base.
Di conseguenza, WndObject contiene la descrizione completa delle proprietà più comuni di qualsiasi controllo (dimensioni, posizione, colore di sfondo, colore del bordo, spessore del bordo, testo, immagine e così via). Inoltre la stessa classe contiene un riferimento al controllo padre. Cioè, se nessun genitore è specificato per il controllo, allora crea il proprio oggetto kanvas sul grafico, altrimenti viene disegnato sul kanvas del genitore. A seconda della sua posizione (standalone, slave) vengono calcolate anche le coordinate della posizione dell'elemento. Inoltre, lo stesso oggetto ha un array che contiene la descrizione originale dell'area madre occupata dall'elemento. L'idea stessa è la seguente: se solo l'elemento stesso cambia, allora prima che venga ridisegnato, l'area dei pixel viene riempita con la matrice dei pixel genitori, e solo allora viene applicato il nuovo stato del controllo. questo approccio non richiede la ridipintura dell'intera tela ogni volta, perché la ridipintura sta bypassando tutti gli elementi nell'array, e ricorsivamente con elementi annidati. Per il rendering e l'aggiornamento di un controllo particolare, suggeriamo due funzioni: una che disegna sopra il genitore (o su una tela vuota) quando si crea l'intero controllo, e un'altra che aggiorna la visualizzazione del solo controllo dato. Quindi va così.
Ancora "perso" nel modello degli eventi: dopo quali cambiamenti quali strati devono essere ridisegnati.
Nikolai nei suoi esempi mostra che in linea di principio non è necessario preoccuparsi di memorizzare i dati delle aree locali perché la ridipintura dell'intera tela funziona così rapidamente che non c'è bisogno di scendere nei dettagli, è sufficiente ridipingere sempre tutto in una volta.