hini #: Presumo che si tratti di un problema legato alla versione del terminale: la build 5120 non riesce a riprodurre l'input del tester.
staticlong GetHandle( constint &ControlID[] )
{
long Handle = MTTESTER::GetTerminalHandle();
constint Size = ::ArraySize(ControlID);
for (int i = 0; i < Size; i++) {
Handle = user32::GetDlgItem(Handle, ControlID[i]);
if (Handle != 0) return Handle;
}
return(Handle);
}
Il problema di ottenere l'input del tester nella versione b5120 è stato risolto. Durante il debug è stato rilevato che per l'array statico const int ControlID[] = {0xE81E, 0x804E} il secondo elemento (0x804E) restituisce Handle uguale a 0, mentre il primo elemento (0xE81E) restituisce Handle valido. Utilizzando questo Handle, la ricezione dei dati di input del tester funziona correttamente.
I test hanno dimostrato che questo metodo funziona anche nella versione b4879 e presumibilmente non dovrebbero esserci problemi anche nella b4885.
Corretto un problema con l'ottenimento dei dati di input del tester nella versione b5120. Durante il debug è stato rilevato che per l'array statico const int ControlID[] = {0xE81E, 0x804E} il secondo elemento (0x804E) restituisce Handle uguale a 0, mentre il primo elemento (0xE81E) restituisce Handle valido. Utilizzando questo Handle, la ricezione dei dati di ingresso del tester funziona correttamente.
I test hanno dimostrato che questo metodo funziona anche nella versione b4879 e presumibilmente non dovrebbero esserci problemi anche nella b4885.
Forse la cosa più semplice da fare è modificare l'ordine
Siete sicuri di utilizzare la versione attuale di MTTester.mqh? Il codice seguente è presente.
staticlong GetHandle( constint &ControlID[] )
{
staticconstbool MT5_b5050 = (::TerminalInfoInteger(TERMINAL_BUILD) > 5000);
long Handle = MTTESTER::GetTerminalHandle();
constint Size = ::ArraySize(ControlID);
for (int i = 0; i < Size; i++)
if (!MT5_b5050 || (ControlID[i] != 0xE81E))
Handle = user32::GetDlgItem(Handle, ControlID[i]);
return(Handle);
}
Lo faccio.
https://www.mql5.com/ru/blogs/post/748365
Ho provato e non riesco a ottenere i parametri del tester.
Devo premere Ctrl+C per copiare il testo una volta?
Ho provato e non riesco a ottenere i parametri del tester.
Vedere _LastError.
Devo premere Ctrl+C per copiare il testo una volta?
No, non è necessario.
Controllare _LastError.
4009 ERR_NOTINITIALISED_STRING
4009 ERR_NOTINITIALIZED_STRING
Non riprodotto.
Non sta giocando.
Presumo che si tratti di un problema di versione del terminale: la build 5120 non riesce a riprodurre gli input del tester.
Sospetto che sia un problema di versione del terminale, non è riproducibile sul 5120.
Tutto funziona anche su b4885.
Tutto funziona anche sul b4885.
Ottenuto
Presumo che si tratti di un problema legato alla versione del terminale: la build 5120 non riesce a riprodurre l'input del tester.
Il problema di ottenere l'input del tester nella versione b5120 è stato risolto. Durante il debug è stato rilevato che per l'array statico const int ControlID[] = {0xE81E, 0x804E} il secondo elemento (0x804E) restituisce Handle uguale a 0, mentre il primo elemento (0xE81E) restituisce Handle valido. Utilizzando questo Handle, la ricezione dei dati di input del tester funziona correttamente.
I test hanno dimostrato che questo metodo funziona anche nella versione b4879 e presumibilmente non dovrebbero esserci problemi anche nella b4885.
Forse la cosa più semplice da fare è modificare l'ordine
Corretto un problema con l'ottenimento dei dati di input del tester nella versione b5120. Durante il debug è stato rilevato che per l'array statico const int ControlID[] = {0xE81E, 0x804E} il secondo elemento (0x804E) restituisce Handle uguale a 0, mentre il primo elemento (0xE81E) restituisce Handle valido. Utilizzando questo Handle, la ricezione dei dati di ingresso del tester funziona correttamente.
I test hanno dimostrato che questo metodo funziona anche nella versione b4879 e presumibilmente non dovrebbero esserci problemi anche nella b4885.
Forse la cosa più semplice da fare è modificare l'ordine
Siete sicuri di utilizzare la versione attuale di MTTester.mqh? Il codice seguente è presente.