Galerie der in MQL geschriebenen UIs - Seite 37

 
Реter Konow #:

1. V-Box(en) und Tabulatoren werden immer in getrennten Gruppen geschrieben. Dies ist praktischer. Es ist wünschenswert, zu diesen Gruppen nichts anderes hinzuzufügen. Sonst beginnt der"Positionierungsdschungel". Natürlich kann man es auch so machen, aber es lohnt sich nicht...


R etag Konow #: Eine sehr wichtige Nuance. Die Tabs steuern das Umschalten der V_BOX(a)-Leinwandbilder. Sie müssen oben deklariert werden. Zuerst die Tabs, dann die V_BOX (s).

Ich habe noch nicht herausgefunden, wie man mit Registerkarten arbeitet. Ich habe H_TAB gezeichnet, aber das sind nur Schaltflächen, und ich weiß nicht, wie man mit ihnen Registerkarten umschalten kann. Ich hätte gerne ein Beispiel mit zwei Registerkarten. Oder ist es dafür noch zu früh?


R etag Konow #:

3. Du hast das Wort "TEXT" in die Tabellen gesetzt. Das ist unnötig. CELL-Zellen haben ihren eigenen Parameter, der beim Verbinden einen Wert von der Benutzeranwendung erhält. Oder verwenden Sie das Wort V_CURRENT, um den Wert zu setzen.

Es ist CELL, das benötigt wird, die Zellen werden programmatisch gefüllt. Bislang habe ich feste Werte eingestellt.

Und V_CURRENT hat geholfen, der Quatsch ist weg.


R etag Konow #: Eine weitere wichtige Nuance. Alle Tabellen haben ein T_HEADER-Element in ihrem Kopf

Ja, in der ersten Tabelle ist es sinnvoll, weil es eine Spalte für Zeilennamen erzeugt.

In der zweiten Tabelle wird diese Spalte nicht benötigt, also habe ich sie nicht hinzugefügt. Aber es hat gut funktioniert.

Bei der zweiten Tabelle handelt es sich um ein zukünftiges Ereignisprotokoll. Vielleicht ist die Tabelle dafür eine schlechte Option? Wenn es programmatisch wäre, wäre es schwierig, Zeilen hinzuzufügen.

 
Edgar Akhmadeev #:

auf H_TAB, "Bericht", war bis zum Hinzufügen des Symbols ein Geist eines Symbols zu sehen, der den Titel verzerrte. Nachdem ich darauf geklickt hatte, verschwand es.

Ich weiß nicht, ob es ein Fehler ist, aber die beschriebenen TEXT_ALIGN_*s fehlen.

Dies wurde noch nicht beantwortet.

Und ich wollte I_BUTTON anstelle von TB_BUTTON anwenden, aber da muss man wissen, wie man das Symbol und den Text ausrichtet, standardmäßig überlappen sie sich.

 
Edgar Akhmadeev #:

Ich habe noch nicht herausgefunden, wie man mit Registerkarten arbeitet. Ich habe H_TAB gezeichnet, aber das sind nur Schaltflächen, aber ich weiß nicht, wie man mit ihnen die Registerkarten umschaltet. Ich hätte gerne ein Beispiel mit zwei Registerkarten. Oder ist es dafür noch zu früh?

CELL ist genau das, was ich brauche, die Zellen werden programmatisch gefüllt. Bis jetzt habe ich feste Werte eingestellt.

Und V_CURRENT hat geholfen, der Müll ist verschwunden.

Ja, in der ersten Tabelle ist es angebracht, weil es eine Spalte für Zeilennamen erstellt.

In der zweiten Tabelle wird diese Spalte nicht benötigt, also habe ich sie nicht hinzugefügt. Aber es hat gut funktioniert.

Bei der zweiten Tabelle handelt es sich um ein zukünftiges Ereignisprotokoll. Vielleicht ist die Tabelle eine schlechte Option für diese? Wenn programmatisch wäre es schwierig, Zeilen hinzuzufügen.

Nehmen Sie ein Beispiel aus dem Fenster des Etikettenmenüs in "Include\(1) KIB 1.0\(1) BASE\ (2) STATE KIB-CODE" . Es deklariert eine Gruppe von Registerkarten und eine V_BOX. Es ist nur eine für drei Registerkarten. Jede Registerkarte hat ihre eigene Gruppe von Symbolen. Sie können dies als Vorlage verwenden. Nur befinden sich die Registerkarten oben, nicht unten. Versuchen Sie, sie nach unten zu setzen. Ich denke, es wird funktionieren.


//===================================================================================================================
 GROUP, "Main tabs",

__, H_TAB, "16x16",ON,   H_TAB, "24x24",  H_TAB, "32x32", GAP,150, EDIT, "E1", W, 320, _,READ_ONLY,  

END_GROUP,
//----------------------------
i, AT, _X2X, "MF", 2, _Y2Y, "MF",2,

i, SWITCH,"16x16","24x24","32x32",END,
i, TENURED,
i, H_TABS, AH_COLOR, (int)C'255,255,255', A_COLOR, (int)C'255,255,255', N_COLOR, (int)C'250,250,250',
 
 P_COLOR,(int)C'236,244,252',  NPG_LINES,20, NPG_STEP,1, NG_LINES,20, NG_STEP,1, END,

"16x16",     IS_APPEARANCE_CONTROLLER,  "LABELS 16*16",END,
"24x24",     IS_APPEARANCE_CONTROLLER,  "LABELS 24*24", END,
"32x32",     IS_APPEARANCE_CONTROLLER,  "LABELS 32*32", END,
//----------------------------------------------------------------------------------
"LABELS 16*16","24x24","32x32", 
//===================================================================================================================

//===================================================================================================================
//----------------------------------------------------------------------------------
GROUP,"Labels v_box 16*16",

__,   V_BOX,"V1", W,800, _,H,330,_,N_FRAME,1,_,A_FRAME,1,_,NP_FRAME,1, AP_FRAME,1,

END_GROUP,
//----------------------------
i, AT, _X2X, "16x16", 0, _Y2H, "16x16", -1,/**/
//===================================================================================================================
 
Edgar Akhmadeev #:

Diese Frage ist noch nicht beantwortet worden.

Und anstelle von TB_BUTTON wollte ich I_BUTTON anwenden, aber da muss man wissen, wie man das Symbol und den Text ausrichtet, standardmäßig überlappen sie sich.

Ich muss darüber nachdenken. Ich habe eine Menge Dinge vergessen. Ich werde nach einer Lösung suchen und Ihnen Bescheid geben.

 
Edgar Akhmadeev #:

Diese Frage ist noch nicht beantwortet worden.

Und anstelle von TB_BUTTON wollte ich I_BUTTON anwenden, aber da muss man wissen, wie man das Symbol und den Text ausrichtet, standardmäßig überlappen sie sich.

Versuchen Sie, den gleichen Ansatz wie bei C_HEADER zu verwenden:

i, C_HEADERS, 
        TEXT_STYLE, (int)FW_BOLD, 
        FONT_SIZE, 10, 
        text, _A1_, _X2X, 
        text, _C1_, 20, 
        text, N_COLOR, (int)C'86,86,86', 
        NG_LINES, 30, NG_STEP, -1,
        POINTED, 0, 
        N_COLOR, (int)C'219,233,249', A_COLOR, (int)C'155,244,196', AH_COLOR, (int)C'155,244,196', 
        END,

Zum Beispiel:

i, I_BUTTONS,  text, _A1_, _X2X,  text, _C1_, 30,    label, _A1_, _X2X,  label, _C1_, 5,     W, 120, H,30,    END,
 
Реter Konow #:
i, I_BUTTONS, text, _A1_, _X2X, text, _C1_, 30, label, _A1_, _X2X, label, _C1_, 5, W, 120, H,30, END,


Arbeitszeile.

 

Die zweite Variante der Positionierung von Symbol und Text auf den Elementen:

i, I_BUTTONS,  
     //-------------- 
    text, _A1_, _C2C, // Привязка текста к центру кнопки по оси Х  (_C2C - center to center). 
    text, _C1_,    0// Поправка позиции относительно центра кнопки по оси Х (0). 
     //-------------- 
    text, _A2_, _C2C,  // Привязка текста к центру кнопки по оси Y  (_C2C - - center to center). 
    text, _C2_,   10// Поправка позиции текста относительно центра кнопки по оси Y  (10). 
     //-------------- 
    label, _A2_, _Y2Y, // Привязка иконки к верху кнопки по оси Y  (_Y2Y  - Y to Y). 
    label, _C2_,   5// Поправка позиции иконки относительно Y координаты кнопки по оси Y  (5). 
     //-------------- 
    W, 100 , H, 50 , 
     //-------------- 
    END,
   //------------------------------------------------------ 
   "Button 1" , N_LABEL, "::Images\\16x16\\Lock.bmp" ,
   //------------------------------------------------------


text, _A1_, _C2C, // Bindung des Textes an die Mitte der Schaltfläche entlang der X-Achse (_C2C - Mitte zu Mitte).

text, _C1_, 0, // Korrektur der Position relativ zur Mitte der Schaltfläche entlang der X-Achse (0).

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

text, _A2_, _C2C, // Bindung des Textes an die Mitte der Schaltfläche entlang der Y-Achse (_C2C - - Mitte zu Mitte).

text, _C2_, 10, // Korrektur der Textposition relativ zur Mitte der Schaltfläche entlang der Y-Achse (10).

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

label, _A2_, _Y2Y, // Einrasten des Symbols am oberen Rand der Schaltfläche entlang der Y-Achse (_Y2Y - Koordinate Y zu Y).

label, _C2_, 5, // Korrektur der Position des Symbols relativ zur Y-Koordinate der Schaltfläche entlang der Y-Achse (5).




 

Im Wesentlichen gibt es nur zwei Optionen für die Positionierung des Textes und des Symbols innerhalb der Schaltflächen. Beide sind oben abgebildet.

Sie können sie als Vorlage für beliebige Elemente mit Text und Symbol verwenden. Ändern Sie einfach den Elementnamen, die Icons, die Texte und die Korrekturen (_C1, _C2).

Technisch gesehen können Sie auch andere Varianten der Text- und Icon-Anordnung innerhalb von Elementen vornehmen, aber praktisch gesehen machen sie keinen Sinn. Bei Bedarf können Sie sie jedoch in Betracht ziehen.

Im Allgemeinen ist die Vorlage fertig. Probieren Sie es aus.

 
Edgar Akhmadeev #:

Diese Frage ist noch nicht beantwortet worden.

...

War meine Antwort hilfreich?
 
Wir sind uns selbst ein wenig voraus, aber nach der Aktualisierung werden wir zum vorherigen Schulungsprogramm zurückkehren. Aber schon mit der Möglichkeit, Berater anzuschließen. Es ist nicht mehr viel übrig.