MetaTrader 4 Build 529 beta rilasciato con un nuovo compilatore - pagina 51

 
Barbarian:

Hai provato altre classi? Non funzionano anche loro?

Ne ho guardato un po', ma non tutto. Provo secondo necessità (scrivendo un programma). a volte metto dei tappi (dove non funziona), fino al momento giusto.

Ho guardato la classe Canvas, e i metodi della classe usano le funzioni di MQL5. Questo è molto probabilmente il motivo del problema. Per esempio, il metodo?

usa TextSetFont di MQL5, che probabilmente non è stato ancora implementato in MQL4. Tuttavia, è già presente nelle descrizioni della Guida. Forse si sono dimenticati di implementarlo.

A proposito, gli sviluppatori hanno fatto davvero un ottimo lavoro con l'evidenziazione della sintassi nell'editor. È molto utile distinguere i metodi di classe dalle funzioni del linguaggio.

Ne sono consapevole. Tutto funzionava già lì 5-6 builds fa, incluso TextSetFont() per esempio questo codice funzionava bene:

    Label = new CCanvas();      
    Label.CreateBitmapLabel("MyLabel",150,150,250,150,//COLOR_FORMAT_ARGB_RAW);
     COLOR_FORMAT_ARGB_NORMALIZE);
    Label.FillRectangle(5,5,220,120,ColorToARGB(BkColor,220));
    //0xffbbbb66);
    if(!Label.FontSet("Comic Sans MS",28,FW_BOLD)) Print(GetLastError());
    Label.TextOut(15,5,"Превед Label",ColorToARGB(0x004400,255));
    if(!Label.FontSet("Comic Sans MS",32,FONT_ITALIC|FONT_UNDERLINE|FW_LIGHT,-100)) Print(GetLastError());
    Label.TextOut(15,35,"Превед Label",ColorToARGB(0x004400,255));
    Label.Update();

solo più tardi disabilitato // si spera temporaneamente :)

quando ha funzionato - ha funzionato a regola d'arte.

 
MetaDriver:
Ne ho guardato un po', ma non tutto. lo provo a seconda delle necessità (sto scrivendo un programma). a volte metto dei tappi (dove non funziona), finché non arrivano tempi migliori.

Ne sono consapevole. tutto ha già funzionato lì 5-6 builds fa, incluso TextSetFont() e.g. questo codice ha funzionato bene:

è stato solo disabilitato più tardi // speriamo temporaneamente :)

quando ha funzionato - ha funzionato secondo le specifiche.

È molto strano in quel momento. Non ha senso disabilitarlo se è stato abilitato fin dall'inizio per estendere la funzionalità. In generale, sarebbe bello avere una build aggiornata con una lista di cambiamenti e bug risolti. Avremo più problemi con l'analisi del nuovo МТ4.

A proposito, c'è un errore. Il nuovo operatore non restituisce un puntatore alla memoria allocata come in C++. Fate così:

    CCanvas Label;// = new CCanvas();      
    Label.CreateBitmapLabel("MyLabel",150,150,250,150,//COLOR_FORMAT_ARGB_RAW);
     COLOR_FORMAT_ARGB_NORMALIZE);
    Label.FillRectangle(5,5,220,120,ColorToARGB(BkColor,220));
    //0xffbbbb66);
    if(!Label.FontSet("Comic Sans MS",28,FW_BOLD)) Print(GetLastError());
    Label.TextOut(15,5,"Превед Label",ColorToARGB(0x004400,255));
    if(!Label.FontSet("Comic Sans MS",32,FONT_ITALIC|FONT_UNDERLINE|FW_LIGHT,-100)) Print(GetLastError());
    Label.TextOut(15,35,"Превед Label",ColorToARGB(0x004400,255));
    Label.Update();

o come questo:

    CCanvas* Label = new CCanvas();      
    Label.CreateBitmapLabel("MyLabel",150,150,250,150,//COLOR_FORMAT_ARGB_RAW);
     COLOR_FORMAT_ARGB_NORMALIZE);
    Label.FillRectangle(5,5,220,120,ColorToARGB(BkColor,220));
    //0xffbbbb66);
    if(!Label.FontSet("Comic Sans MS",28,FW_BOLD)) Print(GetLastError());
    Label.TextOut(15,5,"Превед Label",ColorToARGB(0x004400,255));
    if(!Label.FontSet("Comic Sans MS",32,FONT_ITALIC|FONT_UNDERLINE|FW_LIGHT,-100)) Print(GetLastError());
    Label.TextOut(15,35,"Превед Label",ColorToARGB(0x004400,255));
    Label.Update();
    
    delete Label;

e funzionerà. Leggi https://www.mql5.com/ru/docs/basis/types/object_pointers. Anch'io sono inciampato all'inizio, avendo dimenticato il C++.

 
artmedia70:


Ho il mio nickname e la mia password nella scheda Comunità delle mie impostazioni. Seleziono il file necessario in Editor Navigator, poi seleziono MQL5 Storage --> Add, e il nome del file in Navigator è segnato con un "+" blu. Sembra essere aggiunto. Anche i file che sono stati aggiunti in precedenza, ma che sono stati cambiati in seguito, sono contrassegnati con "!" in un cerchio rosso. Sembra esserci una differenza. Ma non riesco a trovare nessun file aggiunto nel repository stesso:

Cosa c'è che non va?


Sì (l'archiviazione) funziona, non necessariamente al 100% (forse non hanno ancora capito come salvare le versioni), ma funziona.

Basta cliccare sull'ellissi ... - Ho questa cartella iniziale con 2 cartelle in essa(progetto e personale).

 
ALXIMIKS:


Sì, funziona (l'archiviazione), non al 100% (forse non l'ho ancora capito per quanto riguarda il salvataggio delle versioni), ma funziona.

Basta cliccare sull'ellissi ... - Ho una cartella iniziale con 2 cartelle in essa (progetto e personale).

Naturalmente cliccato. Tornare al livello precedente.
 
artmedia70:
Certo che l'ho fatto. Andare al livello precedente.


I tuoi file aggiunti hanno un cerchio verde con un segno di spunta?

dovete prima aggiungere tramite MQL Storeg ==> add, e poi cliccare sul file o sulla cartella da impegnare tramite PCM ==> commit.

 
ALXIMIKS:


vedete un cerchio verde con un segno di spunta nei file aggiunti?

dovete prima aggiungere tramite MQL Storeg ==> add, e poi cliccare sul file o sulla cartella da impegnare tramite PCM ==> commit.

Grazie, farò una prova. Non l'ha fatto in quel modo.
 
ALXIMIKS:


vedete un cerchio verde con un segno di spunta nei file aggiunti?

dovete prima aggiungere tramite MQL Storeg ==> add, e poi cliccare sul file o sulla cartella da impegnare tramite PCM ==> commit.

Esattamente, hai ragione. Ha aiutato ;)
 
Barbarian:

A proposito, gli sviluppatori hanno fatto un ottimo lavoro in termini di evidenziazione della sintassi nell'editor.

Sì, mi piace molto la combinazione di colori. Voglio lo stesso nello studio :-)
 
Barbarian:

Allora è molto strano. Perché spegnerlo se è stato attivato fin dall'inizio per estendere la funzionalità.

Ha senso se il codice delle carte viene riformato radicalmente. E probabilmente lo è (dato che ci sono molte nuove funzionalità da eseguire).


In generale, sarebbe davvero bello avere una build aggiornata con una lista di modifiche e bug risolti. Ci sarà meno da strisciare per studiare il nuovo МТ4.

Sarebbe. Sarebbe in una situazione ideale. Realisticamente, è piuttosto dispendioso in termini di risorse. Per raccogliere tutte le modifiche in una lista... con persone diverse che lavorano su moduli diversi...

A proposito, c'è un errore. Il nuovo operatore non restituisce un puntatore alla memoria allocata come in C++. Fate così:

No, non c'è nessun errore, il puntatore è dichiarato sopra il codice (ho inviato solo un frammento). Grazie per aver cercato di aiutare.
 
MetaDriver:
Ha senso se il codice delle carte viene radicalmente riformato. E probabilmente lo è (dato che ci sono molte nuove funzionalità da lanciare).

Lo è. Idealmente. Realisticamente è abbastanza intensivo in termini di risorse. Mettere tutti i cambiamenti in una lista... con persone diverse che lavorano su moduli diversi...

No, non c'è nessun errore, il puntatore è dichiarato sopra il codice (ho inviato solo un frammento). Grazie per aver cercato di aiutare.

Che il puntatore sia dichiarato sopra il codice è chiaro, anche se non del tutto :) comunque ho eseguito il tuo codice con le mie correzioni, entrambe le mie varianti funzionano. A proposito, non ho ancora capito da cosa sono stati guidati gli sviluppatori nel cambiare il modo in cui funziona il nuovo operatore, a differenza del C++. Non capisco perché un puntatore a un handle sia meglio di un puntatore a un indirizzo in memoria.