Making a crowdsourced project on Canvas - page 2

 
Zorro:
On the topic of using kanvas as a UI.

I'd say it's a beauty.)

I'm very happy with the speed. everything is quite adequate in terms of rendering time and control.

 
Thank you!

Hiders for GIF and PNG
Files:
ZoGIF.mqh  2 kb
ZoPNG.mqh  2 kb
 

Okay.

Since you are already an expert with the practice of creating controls on kanvas,

why don't you describe your base classes and general event model?

----

We can start from your base and then add more controls
- button
- input field
- slider
- drop down list (already in your archive)
- time selection (already in your archive)


 
Spec should be put in inverted commas :)

Right now I am very busy with main work, as soon as I'm free I'll make full scheme, it will be not earlier than 25.07.2016.

In general terms:

Basic object CFrame - abstract object on canvas, has x,y, width, height and a set of virtual methods for event handling (OnMouse..., OnNotify, OnPaint), can contain other CFrame objects.

CWindow is a descendant of CFrame, which implements a canvas and is a graphical object on a chart, receives and handles external events (OnChartEvent), distributing it to objects (child) that reside on it.
All GUI objects are spawned from CFrame, supplementing it with necessary methods

The P&F Chart project does not have a global event controller, it is needed for applications with 2 or more windows (read kanvas).
It is the one which should distribute events to windows and monitor the capture of an instance (keyboard + mouse) by GUI controls.

 
The problem with the input field is that there's no good idea how to use what's available.

IMHO right now, you can only make a full-fledged EDIT if you draw your own GUI keyboard, but it would be hard to support languages, and it's inconvenient to type with a mouse...
 
Renat Fatkhullin:
By the way, in the MetaEditor you can start projects, invite other participants, give them rights and work together on the project.

Do you mean MQL5 Storage?

Renat, could you tell me in more detail where to read about this mechanism?

I've been using the Staorage MQL5 since its launch, but I haven't found the option of shared access there.

 
Right-click on the project, select "Add access rights" in the menu, I've used this in one of my sister projects, it's quite handy - everything is at your fingertips...
 

OK.

the CFrame is clear.

---

I noticed that you went down the path where gui blocks are each represented by their own bitmap.

an important point for those reading this and who have already started to think about it:
The work should only be done on one bitmap, with all gui elements rendered on it. With the z-order in mind.
In this case, there will be more possibilities for rendering. (shadows, gradients etc.).
And control is simplified (we won't go to the level of MT objects)

 
Zorro:
The problem with the input field is that there's no good idea how to use what's available.

IMHO right now, you can only make a full-fledged EDIT if you draw your own GUI keyboard, but it would be hard to support languages, and it's inconvenient to type with a mouse...
hmm, what's the problem with edit?
 
Yuriy Zaytsev:

Do you mean MQL5 Storage?

Renat, could you tell me in more detail where to read about this mechanism?

I've been using the Staorage MQL5 since its launch, but I haven't found the option of shared access there.

Projects - MetaEditor
MetaEditor Projects allows programmers to remotely develop applications in MQL4/MQL5. Projects are implemented specifically for this purpose. Projects are implemented through the MQL5 Storage. Accordingly, a user must have a valid account at MQL5.community, as well as MQL5 Storage. Working with projects has all the advantages of the MQL5 Storage: Safe storage of the source code. In the event of a hard drive failure, the local copy of the codes can be quickly retrieved from the storage. Access to the storage from any computer. You can log in MetaEditor using your MQL5.community account and access the project from any PC. Access to each project is set only by a project author (a user who created it). No one can access a project without the author's permission. Projects folder in MQL4 or MQL5 is intended for shared projects. In the Navigator it is...

MetaTrader 5 Help | 2015.12.02 10:22

And in general, you need to test the joint work with projects - I think there will be questions.