Galerie der in MQL geschriebenen UIs - Seite 64

 

9. Gibt den vorherigen Wert von _V_LAST zurück.

Der vorherige Wert aller Parameter wird automatisch gespeichert. Um ihn zu erhalten, müssen Sie die Elementfunktion aufrufen und den Bezeichner _V_LAST übergeben .

Schauen wir uns das an einem praktischen Beispiel an:

1. öffnen Sie das gewünschte Fenster:

   //------------------------------------------------
   //Open the window "Settings example 2".

   w_7_Settings_example_2();
   //------------------------------------------------



2. Senden Sie einen Wert (Zeichenkette) in das obere Eingabefeld:

   //------------------------------------------------
   //Set up the first string in the textbox:

   w7_s_p4_EDIT_Comment_1("1, 2, 3, 4, 5");
   //------------------------------------------------



3. senden Sie nun eine weitere Zeichenkette in das gleiche Feld:

   //------------------------------------------------
   //Right after, reset it by the new string:

   w7_s_p4_EDIT_Comment_1("A, B, C, D, E");
   //------------------------------------------------



4. Wir erhalten die vorherige Zeichenkette zurück:

   //------------------------------------------------
   //Get back the first value:

   string The_first_value = w7_s_p4_EDIT_Comment_1(get_s,p4_V_LAST);
   //------------------------------------------------


5. Und senden Sie sie in das darunter liegende Feld:

   //------------------------------------------------
   //And send it into the textbox below:

   w7_s_p4_EDIT_Comment_2(The_first_value);
   //------------------------------------------------


6. Wir schreiben die obere Feldzeile noch einmal um:

   //------------------------------------------------
   //Reset the value again:

   w7_s_p4_EDIT_Comment_1("A1, B2, C3, D4, E5");
   //------------------------------------------------


7. Senden wir die vorherige Zeichenfolge an das untere Feld:

   //------------------------------------------------
   //And get the the previous value back:

   string The_second_value = w7_s_p4_EDIT_Comment_1(get_s,p4_V_LAST);
   //------------------------------------------------
   
   //------------------------------------------------
   //Send it into the third textbox:

   w7_s_p4_EDIT_Comment_3(The_second_value);
   //------------------------------------------------



Ergebnis:

  • Das obere Feld ist die aktuelle Zeichenfolge.
  • Im mittleren Feld - die ursprüngliche Zeichenkette.
  • Im unteren Feld - die zweite Zeichenkette.

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

Der gleiche Ansatz funktioniert in allen Fällen.

Mit dem Bezeichner _V_LAST können Sie den letzten Wert eines beliebigen Elements abrufen (wenn der Bezeichner in der Liste der einzelnen Eigenschaften vorgeschrieben ist).




Als Nächstes sollten Sie den EIN/AUS-Zustand festlegen und Elemente sperren.

 
Реter Konow #:
Der gleiche Ansatz funktioniert in allen Fällen.

Beinhaltet er auch den EIN/AUS-Status?

 
hini #:

Gibt es auch einen EIN/AUS-Zustand?

_V_LAST gibt den letzten Parameterwert eines beliebigen Elements zurück.

Sie können den oben gezeigten Ansatz für andere Elemente verwenden. Ich werde das Beispiel eines Schiebereglers und eines Feldes mit Schaltflächen nach dem Thema der Umschaltung von Elementzuständen zeigen.

Bei der Synchronisierung gibt ein Feld den aktuellen Wert des Schiebereglers und das andere den vorherigen Wert zurück.

 

10.die Einstellung der ZuständeON, OFF, LOCK_ON, LOCK_OFF, LOCK, UNLOCKfür verschiedene Elemente:

Es gibt Arten von Elementen, die einen EIN- und AUS-Zustand haben, das klassische Beispiel sind Schaltflächen und Kontrollkästchen. Es gibt jedoch auch viele Elemente, die sich immer in einem neutralen Zustand befinden. ImmerAUS. Was haben sie mit Schaltflächen und Kontrollkästchen gemeinsam? Beide könnengesperrt und entriegelt werden. Der Unterschied besteht darin, dassSchaltflächen und Kontrollkästchenin zwei Zuständen gesperrt sind - ein und aus-, während die anderen Elemente nur imneutralen Zustand sind. Aufgrund dieser Unterschiede gibt es mehrere Bezeichner, die die gleiche Funktion erfüllen - sie sperren und entsperren Elemente.

Betrachten wir nun einige praktische Beispiele:

1. öffnen wir das Einstellungsfenster mit Schaltflächen und Kontrollkästchen:

   //------------------------------------------------
   //Open the window "Settings example 1".
   //------------------------------------------------
   w_6_Settings_example_1();
   //------------------------------------------------



2. Wir setzen den Status der Schaltfläche auf "aktiviert":

   //------------------------------------------------
   //Set the button "Start" ON:

   w6_i_p1_BUTTON_Start(p1_ON);
   //------------------------------------------------

Ergebnis: Die Schaltfläche wurde in den Zustand "gedrückt" versetzt.


3. stellen Sie nun den StatusEIN für die Kontrollkästchen ein:

   //------------------------------------------------
   //Set the checkboxes ON:

   w6_i_p7_CHECKBOX_Set_an_option(p7_ON);
   w6_i_p7_CHECKBOX_Set_another_option(p7_ON);
   w6_i_p7_CHECKBOX_And_another_option(p7_ON);
   //------------------------------------------------

Ergebnis: Die Kontrollkästchen sind in den aktivierten Zustand übergegangen.

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


4. entfernen wir nun den EIN-Zustand der Schaltfläche "Start" mit Hilfe derAUS-Kennung:

   //------------------------------------------------
   //Set the button "Start" OFF:

   w6_i_p1_BUTTON_Start(p1_OFF);
   //------------------------------------------------

Ergebnis: Die Schaltfläche ist in den neutralen Zustand zurückgekehrt.


5. Geben wir den neutralenAUS-Zustand an die Kontrollkästchen zurück:

   //------------------------------------------------
   //Set the checkboxes OFF:
 
   w6_i_p7_CHECKBOX_Set_an_option(p7_OFF);
   w6_i_p7_CHECKBOX_Set_another_option(p7_OFF);
   w6_i_p7_CHECKBOX_And_another_option(p7_OFF);
   //------------------------------------------------

Ergebnis: Die Kontrollkästchen befinden sich wieder im neutralen Zustand.


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


Gehen wir nun dazu über, die Schaltfläche und die Kontrollkästchen in zwei möglichen Zuständen zu sperren: neutral und aktiviert:


1. Sperren wir die Schaltfläche im neutralen Zustand:

   //------------------------------------------------
   //Lock the button "Start" in the state OFF:

   w6_i_p1_BUTTON_Start(p1_LOCK_OFF);
   //------------------------------------------------

Ergebnis: Schaltfläche im neutralen Zustand gesperrt.

(*Fehler, wird behoben.).


2. Sperren Sie die Kontrollkästchen im neutralen Zustand:

   //------------------------------------------------
   //Lock the checkboxes in the state OFF:

   w6_i_p7_CHECKBOX_Set_an_option(p7_LOCK_OFF);
   w6_i_p7_CHECKBOX_Set_another_option(p7_LOCK_OFF);
   w6_i_p7_CHECKBOX_And_another_option(p7_LOCK_OFF);
   //------------------------------------------------

Ergebnis: Die Kontrollkästchen sind im neutralen Zustand gesperrt.


(*Problem, dass der Text bei einigen Elementen im gesperrten Zustand verschwindet, wird in der nächsten Version behoben).


3. Sperren Sie die Schaltfläche und die Kontrollkästchen im gedrückten Zustand mit dem BezeichnerLOCK_ON:

   //------------------------------------------------
   //Lock the button "Start" in the state ON:

   w6_i_p1_BUTTON_Start(p1_LOCK_ON);
   //------------------------------------------------
   //------------------------------------------------
   //Lock the checkboxes in the state ON:

   w6_i_p7_CHECKBOX_Set_an_option(p7_LOCK_ON);
   w6_i_p7_CHECKBOX_Set_another_option(p7_LOCK_ON);
   w6_i_p7_CHECKBOX_And_another_option(p7_LOCK_ON);
   //------------------------------------------------

Ergebnis: Schaltfläche und Kontrollkästchen sind im gedrückten Zustand gesperrt.



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

Testen wir nun die BefehleLOCK und UNLOCK für Elemente, die sich immer im neutralen Zustand befinden.

Nehmen wir zum Beispiel die ElementeC_LIST, D_LIST, H_SLIDER und S_EDIT im selben Fenster:



1. Sperren wir alle vier Elemente auf einmal:

   //------------------------------------------------
   //Lock the elements:

   w6_s_p6_C_LIST_C_LIST_1(p6_LOCK);
   w6_s_p6_D_LIST_D_LIST_1(p6_LOCK);
   w6_i_p3_H_SLIDER_Roll_the_value(p3_LOCK);
   w6_d_p5_S_EDIT_Spin_the_value(p5_LOCK);
   //------------------------------------------------

Ergebnis: die Elemente C_LIST, D_LIST, H_SLIDER und S_EDIT sind gesperrt .


2. Entsperren Sie die Elemente:

   //------------------------------------------------
   //Unlock the elements:

   w6_s_p6_C_LIST_C_LIST_1(p6_UNLOCK);
   w6_s_p6_D_LIST_D_LIST_1(p6_UNLOCK);
   w6_i_p3_H_SLIDER_Roll_the_value(p3_UNLOCK);
   w6_d_p5_S_EDIT_Spin_the_value(p5_UNLOCK);
   //------------------------------------------------

Ergebnis: Die Elemente sind wieder entsperrt.

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

Mit diesen Beispielen schließen wir dieses Thema ab, da die anderen Elemente auf die gleiche Weise gesperrt und entsperrt werden.

...

Als nächstes wenden wir uns der Synchronisation von Parameterwerten zu.

 
Sehr gut, sehr praktisch.
 
hini #:
Sehr gut, sehr praktisch.

Ich danke Ihnen! Die Bewertung durch die Nutzer ist für die weitere Entwicklung sehr wichtig.

 
Nach Abwägung des Umfangs des Materials für das nächste Thema halte ich es für besser, es auf morgen zu verschieben, damit man sich die vorherigen Themen besser merken kann.
 

Anzeichen für eine gute GUI.

Minimalismus: minimaler Platzbedarf auf der Grafik, keine unwichtigen Elemente und Informationen, die die Aufmerksamkeit ablenken.

Funktionalität: Der gesamte belegte Platz sollte so nützlich wie möglich sein, alle Funktionen sollten intuitiv sein.

Ergonomie: Die am häufigsten verwendeten Elemente sollten zugänglich und groß sein.

Ästhetik: Ausrichtung, Standardgrößen, einheitlicher Stil, Farbgestaltung.

 
Ivan Titov #:

Anzeichen für eine gute GUI.

Minimalismus: minimaler Platzbedarf auf den Grafiken, Abwesenheit von unwichtigen Elementen und Informationen, die die Aufmerksamkeit ablenken.

Funktionalität: Der gesamte belegte Platz sollte so nützlich wie möglich sein, alle Funktionen sollten intuitiv sein.

Ergonomie: Die am häufigsten verwendeten Elemente sollten zugänglich und groß sein.

Ästhetik: Ausrichtung, Standardmaße, einheitlicher Stil, Farbgestaltung.


Vielen Dank für die Darstellung des Beispiels. Ich stimme mit Ihren Thesen völlig überein. Ich hoffe, dass ich diesen Entwicklungsstand irgendwann erreichen werde.
 
Реter Konow #:
StatusON, OFF, LOCK_ON, LOCK_OFF, LOCK, UNLOCK für verschiedene Elementefestlegen

Wie erhalte ich den Ein/Aus-Status einer Taste?