Galleria di interfacce utente scritte in MQL - pagina 37

 
Edgar Akhmadeev #:

Domanda:

Esiste un catalogo "Include\(1) KIB 1.0\(1) BASE\(1) DOCUMENTATION\".

Si tratta solo di esempi di codice o è destinato a essere compilato come programma dimostrativo? Qual è il modo corretto di utilizzarlo?

I codici più funzionanti si trovano nella cartella "Include(1) KIB 1.0\(1) BASE\(2) STATE KIB-CODE" .

Ci sono i codici delle finestre del designer. È possibile studiarli.

 
Реter Konow #:

1. Le caselle V e le schede sono sempre scritte in gruppi separati. Questo è più comodo. È auspicabile non aggiungere altro a questi gruppi. Altrimenti, inizia la"giungla del posizionamento". Naturalmente si può fare anche così, ma non ne vale la pena...


R etag Konow #: una sfumatura molto importante. Le schede controllano la commutazione delle immagini del canvas V_BOX(a). Devono essere dichiarate prima. Prima le schede, poi le V_BOX (a).

Non ho ancora capito come lavorare con le schede: ho disegnato H_TAB, ma sono solo pulsanti e non so come cambiare scheda con essi. Vorrei un esempio con due schede. O è troppo presto per questo?


R etag Konow #:

3. Avete inserito la parola "TEXT" nelle tabelle. Non è necessario. Le celle CELL hanno un proprio parametro che riceve un valore dall'applicazione utente quando viene collegato. Oppure, utilizzare la parola V_CURRENT per impostare il valore.

È CELL che serve, le celle saranno riempite programmaticamente. Finora ho impostato valori fissi.

E V_CURRENT mi ha aiutato, la spazzatura è sparita.


R etag Konow #: Un'altra sfumatura importante. Tutte le tabelle hanno un elemento T_HEADER nell'intestazione.

Sì, nella prima tabella è appropriato perché crea una colonna per i nomi delle righe.

Nella seconda tabella questa colonna non è necessaria, quindi non l'ho aggiunta. Ma ha funzionato bene.

La seconda tabella è un registro di eventi futuri. Forse la tabella è una cattiva opzione per questo? Se fosse programmatica, sarebbe difficile aggiungere righe.

 
Edgar Akhmadeev #:

In H_TAB, "Report", finché non ho aggiunto l'icona, c'era un'icona fantasma che distorceva il titolo. È scomparso dopo aver fatto clic su di esso.

Non so se si tratta di un bug, ma mancano i TEXT_ALIGN_* descritti.

Non è ancora stata data una risposta.

Inoltre volevo applicare I_BUTTON invece di TB_BUTTON, ma in questo caso bisogna sapere come allineare l'icona e il testo, che di default si sovrappongono.

 
Edgar Akhmadeev #:

Non ho ancora capito come lavorare con le schede. Ho disegnato H_TAB, ma sono solo pulsanti, ma non so come cambiare scheda utilizzandoli. Vorrei un esempio con due schede. O è troppo presto per questo?

CELL è esattamente ciò di cui ho bisogno, le celle saranno riempite programmaticamente. Finora ho impostato valori fissi.

E V_CURRENT mi ha aiutato, la spazzatura è scomparsa.

Sì, nella prima tabella è appropriato perché crea una colonna per i nomi delle righe.

Nella seconda tabella questa colonna non è necessaria, quindi non l'ho aggiunta. Ma ha funzionato bene.

La seconda tabella è un registro di eventi futuri. Forse la tabella è una cattiva opzione per questo? Se fosse programmatica, sarebbe difficile aggiungere righe.

Prendiamo un esempio dalla finestra del menu Etichette in "Include\(1) KIB 1.0\(1) BASE\ (2) STATO KIB-CODE" . Dichiara un gruppo di schede e una V_BOX. È una sola per tre schede. Ogni scheda ha il suo gruppo di icone. È possibile utilizzarlo come modello. Solo che le schede sono in alto e non in basso. Provare a metterle in basso. Penso che funzionerà.


//===================================================================================================================
 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 #:

Non è ancora stata data una risposta.

E invece di TB_BUTTON volevo applicare I_BUTTON, ma in questo caso bisogna sapere come allineare l'icona e il testo, che di default si sovrappongono.

Devo pensarci su. Ho dimenticato molte cose. Cercherò una soluzione e vi farò sapere.

 
Edgar Akhmadeev #:

Non è ancora stata data una risposta.

E invece di TB_BUTTON volevo applicare I_BUTTON, ma in questo caso bisogna sapere come allineare l'icona e il testo, che di default si sovrappongono.

Cercare di usare lo stesso approccio di C_HEADER:

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,

Per esempio:

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


Linea di lavoro.

 

La seconda variante di posizionamento dell'icona e del testo sugli elementi:

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, // Vincola il testo al centro del pulsante lungo l'asse X (_C2C - da centro a centro).

text, _C1_, 0, // Correzione della posizione rispetto al centro del pulsante lungo l'asse X (0).

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

text, _A2_, _C2C, // Vincola il testo al centro del pulsante lungo l'asse Y (_C2C - - da centro a centro).

text, _C2_, 10, // Correzione della posizione del testo rispetto al centro del pulsante lungo l'asse Y (10).

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

label, _A2_, _Y2Y, // Aggancia l'icona alla parte superiore del pulsante lungo l'asse Y (_Y2Y - coordinata Y a Y).

label, _C2_, 5, // Correzione della posizione dell'icona rispetto alla coordinata Y del pulsante lungo l'asse Y (5).




 

Essenzialmente ci sono solo due opzioni per posizionare il testo e l'icona all'interno dei pulsanti. Entrambe sono mostrate sopra.

È possibile utilizzarlo come modello per qualsiasi elemento con testo e icona. Basta cambiare il nome dell'elemento, le icone, i testi e le correzioni (_C1, _C2).

Tecnicamente è possibile realizzare altre varianti di disposizione di testo e icone all'interno degli elementi, ma in pratica non hanno senso. Se si presenta la necessità, si possono prendere in considerazione.

In generale, il modello è pronto. Provatelo.

 
Edgar Akhmadeev #:

Non è ancora stata data una risposta.

...

La mia risposta è stata utile?