Galerie der in MQL geschriebenen UIs - Seite 62

 
hini #:

Ich bin dem Code gefolgt und habe ihn getestet. Dabei habe ich eine unerwartete Sache gefunden, die nicht automatisch erkannt wird, wenn die Länge der Zufallszeichenfolge zu lang ist


Ja, sicher, danke für die Nachricht. Ich werde es mir mal ansehen.

In der Regel wird der Text standardmäßig immer gekürzt. Dies ist bisher noch nie passiert. Vielleicht liegt es an der Hinzufügung einer neuen Funktion.

 
hini #:

Ich habe ein für mich fatales Problem entdeckt, nämlich dass der eingegebene Text auf der grafischen Benutzeroberfläche in der horizontalen Ausrichtung ...... um 90 Grad gedreht angezeigt wird, wie es normalerweise der Fall ist:


Ich weiß es nicht. Vielleicht hat es mit den Spracheinstellungen zu tun. So funktioniert wahrscheinlich die Standardfunktion TextOut() in MQL. Sie sollten die Entwickler fragen. Mein Code dreht den Text definitiv nicht um. Es gibt keine solche Option.

 
hini #:

Ich bin dem Code gefolgt und habe ihn getestet. Dabei habe ich eine unerwartete Sache gefunden, die nicht automatisch erkannt wird, wenn die Länge der Zufallszeichenfolge zu lang ist

Übrigens, wenn Sie nach der programmgesteuerten Texteingabe auf das Eingabefeld klicken und dann auf eine andere Fensterfläche klicken, wird der Text im Feld kleiner. Dies ist offensichtlich auf die neue Funktionalität zurückzuführen, da andere Texte bereits beim Fensteraufbau gekürzt werden. In diesem Fall ist das Textkürzungskennzeichen bereits gesetzt, so dass die Funktion den Text nicht kürzt. Der Fehler ist offensichtlich.

 
hini #:

Ich habe ein für mich fatales Problem entdeckt, nämlich dass der eingegebene Text auf der grafischen Benutzeroberfläche in der horizontalen Ausrichtung ...... um 90 Grad gedreht angezeigt wird, wie es normalerweise der Fall ist:


Ich überprüfe den Wert, der in den Parameter TextSetFont() eingeht, der für den Winkel des Textes verantwortlich ist. Andererseits werden alle Texte in horizontaler Ausrichtung gerendert.... Ich kann Ihnen noch keine endgültige Antwort geben. Vielleicht wird es später klarer.

 
Реter Konow #:

Ich werde den Wert des Eingabeparameters TextSetFont() überprüfen, der für die Einstellung des Textwinkels verantwortlich ist. Andererseits wird der gesamte Text horizontal gerendert ..... Ich kann Ihnen im Moment keine klare Antwort geben. Vielleicht wird es später klarer sein.

Es sollte etwas mit der Sprache zu tun haben, Chinesisch, Japanisch und Koreanisch haben alle die Möglichkeit, dies zu tun
 
hini #:
Es muss an der Sprache liegen: Im Chinesischen, Japanischen und Koreanischen ist dies möglich.

Das ist durchaus möglich. Schade, wenn es nicht behoben werden kann.

 
7. Setzen und Zurückgeben von Werten für Parameter und Eigenschaften von Elementen verschiedener Typen.
8. Rückgabe von Parameterwerten eines Elements, Änderung und Weiterleitung an ein anderes Element.

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

Fassen wir beide Themen zusammen - Einstellung, Rückgabe und Weiterleitung von Parameterwerten und Eigenschaften:

1. das Setzen von Werten für einen Parameter von Elementen:

In den meisten Elementen bedeutet das Setzen eines Wertes für einen Parameter, dass der Wert in numerischer oder Textform auf der Oberfläche des Steuerelements angezeigt wird.

Im vorigen Beitrag wurde eine Methode zum programmatischen Setzen von Text in einem Eingabefeld gezeigt:

w7_s_p4_EDIT_Comment_1("Some random text");//Тип посылаемого в функцию значения string.



Schauen wir uns an, wie dieser Ansatz mit anderen Elementen funktioniert:

1. Ein Eingabefeld mit Schaltflächen:

w6_d_p5_S_EDIT_Spin_the_value(423.11); //Тип посылаемого в функцию значения double.

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


2.

w6_i_p3_H_SLIDER_Roll_the_value(33); //Тип посылаемого значения int, потому что тип функции int. В данном случае, потому что у слайдера диапазон в целых числах.


Wenn Sie einen Wert außerhalb des Bereichs des Schiebereglers eingeben, erhält das Protokoll eine Warnmeldung, dass der Zahlenbereich überschritten wurde, und der neue Wert wird nicht eingestellt!

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


3.

w6_s_p6_D_LIST_D_LIST_1("L_ITEM 5"); //Тип посылаемого значения string. Устанавливаем другую опцию элемента выпадающий список (D_LIST). 

* Diese Option ist noch nicht vollständig ausgearbeitet. Das zugrundeliegende Element bleibt in demselben Zustand und das Feld akzeptiert jeden Text. Dies wird in den nächsten Versionen behoben werden.

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

4.

   w8_s_p4_CELL_Account_name__Value("MyRealAccount"); //Тип посылаемого значения string. Посылаем текст в ячейку таблицы. 

   w8_s_p4_CELL_Account_number__Value("A001234647843B1");

   w8_s_p4_CELL_Account_server__Value("MyServer");

   w8_s_p4_CELL_Account_currency__Value("US Dollar");

   w8_s_p4_CELL_Leverage__Value("1:1");

   w8_s_p4_CELL_Account_balance__Value("1234567.23 $");


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


2. nun senden wir den Wert aus dem Eingabefeld an die Tabellenzelle:

  • Übernehmen des Wertes aus dem Eingabefeld mit Schaltflächen:

   double Spin_edit_value = w6_d_p5_S_EDIT_Spin_the_value();//Делаем возврат значения параметра (тип double).

Und senden Sie ihn an die Tabellenzelle:

   w8_s_p4_CELL_Account_profit__Value((string)Spin_edit_value);//При пересылке значение double приводим к типу string. Функция ячейки имеет тип string.


Der Wert wird vom Empfänger erfolgreich angenommen!

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

Nun wollen wir diesen Wert an ein Textfeld in einem anderen Fenster senden.

w7_s_p4_EDIT_Comment_2((string)Spin_edit_value);

Der Wert wurde erfolgreich gesendet!

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

...

Wir machen morgen an dieser Stelle weiter. Das Thema ist noch nicht ausgeschöpft.

 
Das ist wirklich praktisch.
 
Die erzwungene Typumwandlung kann hier in die Funktion eingefügt werden, so dass der Benutzer nicht (string) außerhalb der
w7_s_p4_EDIT_Comment_2((string)Spin_edit_value);
 
hini #:
E rzwungene Typkonvertierung hier, kann sie in eine Funktion eingefügt werden, damit der Benutzer nicht außerhalb der Funktion schreiben muss (String)

Ich habe die Frage nicht wirklich verstanden, daher ist meine Antwort vielleicht nicht zum Thema passend.

Man könnte es so machen:


Die Double-Funktion gibt eine Variable vom Typ String zurück, indem sie eine erzwungene Konvertierung bei der Wertrückgabe vornimmt.
string Spin_edit_value = (string)w6_d_p5_S_EDIT_Spin_the_value();

w7_s_p4_EDIT_Comment_2(Spin_edit_value);