MetaTrader 4 Build 529 beta released with new compiler - page 82

 

komposter Apparently I misspoke my point :). You get happy when you see it's "available". After I've upgraded to a new build, instead of decreased joy I get more hope and belief in the next one :) Well, there you go.... I tried to express my emotions as correctly as possible.

Renat, thank you for your reply. We are waiting for further changes, hopefully my remarks (at least 5 have already been) will also be taken into account and will not have to read them all over again.

 

I have made in all terminals (MT4/MT5) in the Files folder a subfolder MyCommon, mapped them all to one virtual disk (the disk was set to autostart). // now this folder is visible everywhere.

In this folder I made a subfolder Include (now visible everywhere too).

In this folder (and subfolders) I have created universal mql4/5 include files that are accessible in all terminals at once. // directives of #ifdef family have finally appeared and now work perfectly.

It really is very convenient now. // I recommend it to everybody.

BUT :

I encountered a problem with nonsynchronous editing of files. // I am simultaneously editing in MT4/ME4 and MT5/ME5, in order to test both mql4 and mql5 code simultaneously, while writing it.

The problem: When you change a file in one of the editors, the other does not notice the changes. It doesn't. Doesn't detect, doesn't pick up, and doesn't even report an "external" file change with a "reload/ignore" choice.

I.e. for the second reactor to see the changes, the file has to be closed in it and then reopened. This is extremely inconvenient.

Very big request to developers: please make "autodetection" and processing of external modification of file loaded in ME.

// I think it used to be, just stopped working ?

--

And another question: why can't you define your own symbols for conditional compilation? Once again, it's not really a full-fledged feature. Or am I just not looking hard enough?

 
MetaDriver:

I have made in all terminals (MT4/MT5) in the Files folder a subfolder MyCommon, mapped them all to one virtual disk (the disk was set to autostart). // Now this folder is visible everywhere.

In this folder made a subfolder Include (now also visible everywhere).

In this folder (and subfolders) I have created universal mql4/5 include files that are accessible in all terminals at once. // directives of #ifdef family finally appeared and now works perfectly.

It really is very convenient now. // I recommend it to everybody.

BUT :

I encountered a problem with nonsynchronous editing of files. // I am simultaneously editing in MT4/ME4 and MT5/ME5, in order to test both mql4 and mql5 code simultaneously, while writing it.

The problem: When you change a file in one of the editors, the other doesn't notice the changes. It doesn't. Doesn't detect, doesn't pick up, and doesn't even report an "external" file change with a "reload/ignore" choice.

In other words, for the second reactor to see the changes, the file has to be closed in it and then reopened. This is very inconvenient.

A very big request to the developers : please make "autodetect" and handle external modification of the file loaded in ME.

// It seems to me it was before, just stopped working ?

Where is it written about ifdef? I can't find it in MQL help

 
MetaDriver:

1. I have made in all terminals (MT4/MT5) in the Files folder a subfolder MyCommon, mapped them all to one virtual disk (I put the disk in autostart). // Now this folder is visible everywhere.

I made an Include subfolder in this folder (now visible everywhere too).

In this folder (and subfolders) I have created universal mql4/5 include files that are accessible in all terminals at once. // directives of #ifdef family have finally appeared and now work perfectly.

It really is very convenient now. // I recommend it to everybody.

BUT :

2. I encountered a problem with nonsynchronous editing of files. // I am simultaneously editing in MT4/ME4 and MT5/ME5, in order to test both mql4 and mql5 code simultaneously, while writing it.

The problem: When you change a file in one of the editors, the other doesn't notice the changes. It doesn't. Doesn't detect, doesn't pick up, and doesn't even report an "external" file change with a "reload/ignore" choice.

I.e. for the second reactor to see the changes, the file has to be closed in it and then reopened. This is extremely inconvenient.

Very big request to developers: please make "autodetection" and processing of external modification of file loaded in ME.

// I think it was there before, it just stopped working ?

1. In my opinion, it is more convenient and reliable to use symbolic, soft and hard links than a virtual disk. Still, OS options are more reliable than software.
2. If autosave does not want to do, then the detection of changes from an external editor will not do.
 
MetaDriver:

Made in all terminals (MT4/MT5) in Files folder a subfolder MyCommon, mapped them all to one virtual disk

Do you mean the hard link?

Why not in MQL4\ MQL5\? Why in Files\?

 
MetaDriver:

I have made in all terminals (MT4/MT5) in the Files folder a subfolder MyCommon, mapped them all to one virtual disk (the disk was set to autostart). // now this folder is visible everywhere.

I made a subfolder Include in this folder (also visible everywhere now).

In this folder (and subfolders) I have created universal mql4/5 include files that are accessible in all terminals at once. // directives of #ifdef family have finally appeared and now work perfectly.

It really is very convenient now. // I recommend it to everybody.

BUT :

I encountered a problem with nonsynchronous editing of files. // I am simultaneously editing in MT4/ME4 and MT5/ME5, in order to test both mql4 and mql5 code simultaneously, while writing it.

The problem: When you change a file in one of the editors, the other doesn't notice the changes. It doesn't. Doesn't detect, doesn't pick up, and doesn't even report an "external" file change with a "reload/ignore" choice.

I.e. for the second reactor to see the changes, the file has to be closed in it and then reopened. This is extremely inconvenient.

Very big request to developers: please make "autodetection" and processing of external modification of file loaded in ME.

// I think it was there before, it just stopped working ?


Zhunko:
1. In my opinion, it is more convenient and reliable to use symbolic, soft and hard links than a virtual disk. Still, OS options are more reliable than software.
2. If they do not want to do autosave, then the detection of changes from an external editor will not do.

komposter:

Do you mean the hard link?

Why not in MQL4\MQL5? Why in Files\?

Can I have an illustration?
 
Barbarian:

Where is it written about ifdef? I can't find it in MQL help

It was in the announcements(on MT5 updates for sure). Then it was implemented.

//\files\MyCommon\Include\StatBasket_01.mqh
//+------------------------------------------------------------------+
//|                                                StatBasket_01.mqh |
//|                                           © 2013, MetaDriver Lab |
//|                       https://www.mql5.com/ru/users/MetaDriver |
//+------------------------------------------------------------------+
#property copyright "© 2013, MetaDriver Lab"
#property link      "https://www.mql5.com/ru/users/MetaDriver"

#ifndef __MQL5__
    #property strict
#endif 

#ifdef _DEBUG
class CLogPrint  // дебаг версия лог-файла (расширенная)
  {
public:
                     CBebugLog(void);
                    ~CBebugLog(void);
  };
#else 
class CLogPrint  // релиз версия
  {
public:
                     CBebugLog(void);
                    ~CBebugLog(void);
  };
#endif 

class CSBasket
  {
public:
                     CSBasket(void);
                    ~CSBasket(void);
  };

--

All this works. You may use it.

 
Zhunko:
1. In my opinion, it is more convenient and reliable to use symbolic, soft and hard links than a virtual disk. Still, OS options are more reliable than software.
2. If autosave does not want to do, then the detection of changes from an external editor will not do.

1. I do not understand with soft / hard links. How to do them, how to use them?

2. Let's see. You don't have to be so categorical. I told you, it used to be (in ME5. the editor said "file changed, reload?")

 
komposter:

Do you mean the hard link?

Why not in MQL4\MQL5\? Why Files\?

I don't really understand the hard link. But that must be it.

The reason is in Files - because mql-programs can be written there. I often need it for autogenerating inclusions with some massive Enum or routine sources, where the logic and/or data can be changed in code generator.

// I usually do not generate anything complicated. But it is often needed something simple and regular (in terms of structure) and very routine (like fifty external variables, e.g. neural network coefficients for MT-optimization).

 
tara:

And you can with illustrations?

Alexei, I've attached one piece of source code. is that enough?

I just didn't understand what illustrations you want.

here's more. this is what a virtual folder looks like in explorer:



And so you can add paths to the virtual drive mapping:


Reason: