Galerie der in MQL geschriebenen UIs - Seite 34

 
Реter Konow #:

Vor Jahren habe ich Ihren Code analysiert und versucht, ihn in meinen Systemen zu implementieren.

Ich habe nicht herausgefunden, wie ich dabei dynamische Formulare erstellen kann. Ist das möglich, und wenn ja, schicken Sie mir bitte Beispiele. Geben Sie bitte auch an, ob es möglich ist, die Eigenschaften eines Objekts im Prozess zu ändern, z. B. Schriftart, Größe, Position auf dem Formular.

 


Der zweite Typ der Aufzählung ist i, SWITCH,..., END .

Schaltet den aktivierten Zustand zwischen Elementen um, deren Namen zwischen dem Wort SWITCH c.wordund dem WortEND c. word angegeben sind,


1.



2.


CODE:

GROUP, A,
 
__, R_BUTTON, "R_button 1",  
__, R_BUTTON, "R_button 2",  
__, R_BUTTON, "R_button 3",  
__, R_BUTTON, "R_button 4",  
__, R_BUTTON, "R_button 5",  
__, R_BUTTON, "R_button 6",  

END_GROUP,
//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
//SET GAPS:
//--------------------------
i, Y_GAP, 20,
//--------------------------
//USE SWITCH ENUMERATION TO SELECT ONE ELEMENT IN THE GROUP:
//--------------------------
 i, SWITCH, 
            "R_button 1", "R_button 2", "R_button 3", 
            "R_button 4", "R_button 5", "R_button 6",  
            
      END,
//--------------------------
 
Sergey Likho #:

Vor Jahren habe ich Ihren Code analysiert und versucht, ihn in meinen Systemen zu implementieren.

Ich habe nicht herausgefunden, wie ich dabei dynamische Formulare erstellen kann. Ist das möglich, und wenn ja, schicken Sie mir bitte Beispiele. Geben Sie bitte auch an, ob es möglich ist, die Eigenschaften eines Objekts im Prozess zu ändern, z. B. Schriftart, Größe, Position auf dem Formular.

In dieser Version des Konstruktors ist das dynamische Fenster deaktiviert. Es ist möglich, verschiedene Eigenschaften von Elementen, einschließlich der Schriftart, zu ändern. Ich bin derzeit einige pädagogische Arbeit auf der Markup-Sprache in diesem Thread zu tun. Ich empfehle Ihnen, sich die vorherigen Seiten anzusehen. Es gibt dort Material, das Ihnen helfen und Sie lehren kann. Das Thema der Anordnung von Elementen auf dem Formular ist jedoch noch nicht behandelt. Es liegt noch vor uns. Wenn ich die Engine veröffentliche, können Sie auch Schnittstellen zu Benutzeranwendungen einrichten.

 
Реter Konow #:


Der zweite Typ der Aufzählung ist i, SWITCH,..., END .

Schaltet den aktivierten Zustand zwischen den Elementen um, deren Namen zwischen dem Wort SWITCH c.wordund dem WortEND c.word stehen,


1.



2.


CODE:

Um die SWITCH-Aufzählung nachzuvollziehen.

Es gibt eine Option, um den Elementen einer Gruppe universelle Umschaltungen zuzuweisen, wenn es zu viele von ihnen gibt, um den Namen jedes Elements zu schreiben. Zum Beispiel lange Menüs mit Dutzenden von Elementen in Dropdown-Listen. In diesem Fall benötigen Sie eine Möglichkeit, das Umschalten aller Elemente festzulegen, ohne jeden Namen aufzulisten.

Dies wird mit dem Schlüsselwort SWITCH_ALL erreicht.

GROUP, A,
 
__, R_BUTTON, "R_button 1",  
__, R_BUTTON, "R_button 2",  
__, R_BUTTON, "R_button 3",  
__, R_BUTTON, "R_button 4",  
__, R_BUTTON, "R_button 5",  
__, R_BUTTON, "R_button 6",  

END_GROUP,
//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
//SET GAPS:
//--------------------------
i, Y_GAP, 20,
//--------------------------
//USE SWITCH_ALL WORD TO SWITCH BETWEEN ALL THE ELEMENTS IN THE GROUP:
//--------------------------
i, SWITCH_ALL,
 

Und der letzte Aufzählungstyp für heute:


i, BLOCKS, ..., END.

Wenn es notwendig ist, einzelne Elemente der Schnittstelle zu sperren, kommt das BLOCKS c.word zur Hilfe.

Sie haben zum Beispiel zwei Kontrollkästchen, die mehrere andere Kontrollkästchen blockieren/aktivieren müssen, die entweder in ihrer Gruppe oder in einer anderen Gruppe sind.

Dies geschieht auf diese Weise:

//--------------------------
//FIRST GROUP
//--------------------------
GROUP, "Group 1",

__, CHECKBOX, "Checkbox 100", GAP,30, CHECKBOX, "Checkbox 200",

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, CHECKBOXES, W, 120,  END,
//--------------------------------------------------------------
//1. WRITE THE NAME OF THE CHECKBOX THAT WILL BLOCK THE OTHERS:
//2. WRITE KEYWORD "BLOCKS".
//3. WRITE THE NAMES OF THE ELEMENTS (OR GROUPS) IT WILL BLOCK.
//4. PUT "END" IN THE END.
//--------------------------------------------------------------
"Checkbox 100", BLOCKS, "Checkbox 3","Checkbox 5","Checkbox 7", END,

"Checkbox 200", BLOCKS, "Checkbox 4","Checkbox 6","Checkbox 8", END,
//--------------------------------------------------------------

//--------------------------
//SECOND GROUP
//--------------------------
GROUP, "Group 2",


__, CHECKBOX, "Checkbox 3",  CHECKBOX, "Checkbox 4",

__, CHECKBOX, "Checkbox 5",  CHECKBOX, "Checkbox 6",

__, CHECKBOX, "Checkbox 7",  CHECKBOX, "Checkbox 8",

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2H, "Checkbox 100", 30,
//--------------------------
 i, CHECKBOXES, W, 120,  END,
//--------------------------
i, X_GAP, 30,
i, Y_GAP, 20,
//----------------------------
//SET MAIN PROPERTIES (IF YOU DON'T, THEY WILL HAVE DEFAULT VALUES): 


Ergebnis:

1. Wenn sich das blockierende Element nicht im Zustand actv befindet, sind seine Elemente blockiert.


2.

Umgekehrt sind sie offen, wenn sie aktiviert sind.


 

Der Rest morgen.

Ich vergaß hinzuzufügen. Sie können eine Gruppe benennen, anstatt Artikel aufzulisten, und alle Artikel in dieser Gruppe werden dann gesperrt:

//--------------------------
//FIRST GROUP
//--------------------------
GROUP, "Group 1",

__, CHECKBOX, "Checkbox 100",  

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, CHECKBOXES, W, 120,  END,
//--------------------------
//--------------------------------------------------------------
//1. WRITE THE NAME OF THE CHECKBOX THAT WILL BLOCK THE OTHERS:
//2. WRITE KEYWORD "BLOCKS".
//3. WRITE THE NAMES OF THE ELEMENTS (OR GROUPS) IT WILL BLOCK.
//4. PUT "END" IN THE END.
//5. OR, WRITE THE NAME OF THEIR GROUP.
//--------------------------------------------------------------
"Checkbox 100", BLOCKS, "Group 2", END,
//--------------------------------------------------------------

//--------------------------
//SECOND GROUP
//--------------------------
GROUP, "Group 2",


__, CHECKBOX, "Checkbox 3",  CHECKBOX, "Checkbox 4",

__, CHECKBOX, "Checkbox 5",  CHECKBOX, "Checkbox 6",

__, CHECKBOX, "Checkbox 7",  CHECKBOX, "Checkbox 8",

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2H, "Checkbox 100", 30,
//--------------------------
i, X_GAP, 30,
i, Y_GAP, 20,
//----------------------------
//SET MAIN PROPERTIES (IF YOU DON'T, THEY WILL HAVE DEFAULT VALUES): 
i, CHECKBOXES, W, 120,  END,
//------------------------------------------------------

Ergebnis:


 
Sehr gut, bitte führen Sie weitere Kontrollen ein
 
hini #:
Sehr gut, fahren Sie bitte mit den anderen Kontrollen fort.

Ja, ja, natürlich. Das steht in den Plänen. Übrigens, was die anderen Kontrollen angeht...

 

So sieht das Sperren einiger anderer Arten von Kontrollen aus:

1. offen:


2. verriegelt:


 
//--------------------------
//FIRST GROUP
//--------------------------
GROUP, "Group 1",

__, CHECKBOX, "Checkbox 100",  

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, CHECKBOXES, W, 120,  END,
//--------------------------
//--------------------------------------------------------------
//1. WRITE THE NAME OF THE CHECKBOX THAT WILL BLOCK THE OTHERS:
//2. WRITE KEYWORD "BLOCKS".
//3. WRITE THE NAMES OF THE ELEMENTS (OR GROUPS) IT WILL BLOCK.
//4. PUT "END" IN THE END.
//5. OR, WRITE THE NAME OF THEIR GROUP.
//--------------------------------------------------------------
"Checkbox 100", BLOCKS, "Group 2", END,
//--------------------------------------------------------------

//--------------------------
//SECOND GROUP
//--------------------------
GROUP, "Group 2",


__, H_SLIDER, "H_Slider 1", W, 120,       S_EDIT, "Textbox 1",         W, 120, 

__, C_LIST,   "Combobox 1", W, 120,       D_LIST, "Combobox 2",        W, 120, 

__, BUTTON,   "Button 1",   W,120,        D_BUTTON, "Dialog button 1", W, 120, 

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2H, "Checkbox 100", 30,
//--------------------------
i, X_GAP, 30,
i, Y_GAP, 20,
//----------------------------
//SET MAIN PROPERTIES (IF YOU DON'T, THEY WILL HAVE DEFAULT VALUES): 

//------------------------------------------------------