Benim yaklaşımım. Çekirdek - Motor. - sayfa 35

 
Dmitry Fedoseev :

Ve sen ne düşünüyorsun? Standart kütüphanenin idare edemediği ne var?

Tamam Dimitri. Buradaki seyirci pes etmek istemiyor. Bir sanatçı olarak, belki de o kadar değil. Ama yapıcının olanaklarını göstermeye çalıştım. Yeterince genişler. Sadece hızlı değil, aynı zamanda güzel de yaratabilirsiniz (peki, bu çizimde benden daha yetenekli olanlar için).

Saat penceresi kodunu göstereceğim:

 //----------------------------------------------------------------------------------
NEW_WINDOW,  W_NAME, "Time limits" ,  W_ICON, "Schedule (16x16)" ,  W_TYPE, SETTINGS, ALWAYS_ON_TOP,   
MARGINS,- 9 ,- 7 ,
//----------------------------------------------------------------------------------
"MF" ,N_COLOR,( int ) C'200,169,149' , 
"MF" ,NG_LINES, 56 , 
"MF" ,NG_STEP,- 1 ,
//----------------------------------------------------------------------------------
 GROUP, A,
//---------------------------------------
__,BOARD, "Time limits for initial trades:" , W, 280 ,_,H, 30 ,_,FONT_SIZE, 13 , _,TEXT_FONT, "Arial Black" ,_,ADAPT_2_GRADIENT, "MF" ,_,text, N_COLOR,( int ) C'255,255,255' ,
//--------------------------------------- 
 END_GROUP,
//--------------------------
 i, AT, _X2X, "MF" , 33 , _Y2Y, "MF" , 5 ,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
 GROUP, A,
//---------------------------------------
 __,REC, "R1" , W, 190 ,_,H, 63 ,
//--------------------------------------- 
 END_GROUP,
//--------------------------
 i, AT, _X2W, "OFF" , 10 , _Y2H, "Time limits for initial trades:" , 10 ,
 i,RECS, 
        N_FRAME, 1 ,
        N_FRAME_COLOR,( int ) C'209,173,149' , 
       // FRAME_TYPE,_abc,  
        N_COLOR,( int ) C'240,209,189' ,
       // NG_LINES,15,NG_STEP,1,
        NG_LINES, 36 , 
        NG_STEP, 1 ,
        END,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
 GROUP, A,
    
__, BUTTON, "OFF" , W, 100 ,_,H, 65 , _,P_COLOR,( int ) C'250,189,179' ,  _,A_COLOR,( int ) C'255,20,17' , _,AP_COLOR,( int ) C'255,60,17' , _,PARAM_TYPE,_BOOL, _,N_COLOR,( int ) C'240,219,189' , _,FIC,
         
 END_GROUP,
//--------------------------
 i, AT, _X2X, "MF" , 5 , _Y2H, "Time limits for initial trades:" , 10 ,
//--------------------------  
i,BUTTONS,  PARAM_TYPE,_BOOL,   text,_A1_,_C2C,       text,_A2_,_C2C,     FONT_SIZE, 12 ,   N_FRAME, 1 ,   A_FRAME, 1 ,   NP_FRAME, 1 ,    END,
"OFF" ,A_TEXT, "ON" ,
//-------------------------- 
"OFF" ,NG_LINES, 65 , 
"OFF" ,NG_STEP,- 1 ,
"OFF" ,AG_LINES, 65 , 
"OFF" ,AG_STEP,- 1 ,
"OFF" ,NPG_LINES, 65 , 
"OFF" ,NPG_STEP,- 1 ,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
 GROUP, A,
    
__, EDIT, "Hour to start" , _,EDIT_ALIGN_CENTER, _,V_CURRENT, "1" ,   //_,READ_ONLY, 
    
    EDIT, "End hour" ,      _,EDIT_ALIGN_CENTER,_,V_CURRENT, "0" ,   //_,READ_ONLY, 
    
 END_GROUP,
//--------------------------
 i, AT, _X2W, "OFF" , 17 , _Y2H, "Time limits for initial trades:" , 30 ,
 
 i,X_GAP, 3 ,

 i,EDITS,  
 FRAME_TYPE,_b,
 POINTED, 0 ,
 H, 39 ,
 W, 90 ,
 FONT_SIZE, 20 ,
 N_COLOR,( int ) C'240,209,189' ,
 NH_COLOR,( int ) C'240,209,189' ,
 A_COLOR,( int ) C'240,209,189' ,
 AH_COLOR,( int ) C'240,209,189' ,
 N_FRAME_COLOR,( int ) C'200,169,149' ,
 
 TEXT_FONT, "Arial Black" ,
 bar,N_FRAME, 1 ,
 bar,A_FRAME, 1 ,
 bar,FRAME_TYPE,_bc,
 
 bar,N_FRAME_COLOR,( int ) C'200,169,149' ,
 bar,NH_FRAME_COLOR,( int ) C'200,169,149' ,
 bar,A_FRAME_COLOR,( int ) C'200,169,149' ,
 bar,AH_FRAME_COLOR,( int ) C'200,169,149' ,
 
 bar,N_COLOR,( int ) C'255,229,219' ,
 bar,NH_COLOR,( int ) C'255,229,219' ,
 bar,A_COLOR,( int ) C'255,229,219' ,
 bar,AH_COLOR,( int ) C'255,229,219' ,
 
 bar,NG_LINES, 36 , 
 bar,NG_STEP,   1 ,
 bar,AG_LINES, 36 , 
 bar,AG_STEP,   1 ,
 
 text,N_COLOR,  ( int ) C'200,139,129' ,
 text,NH_COLOR, ( int ) C'200,139,129' ,
 text,A_COLOR,  ( int ) C'200,139,129' ,
 text,AH_COLOR, ( int ) C'200,139,129' ,
 
END,

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

//----------------------------------------------------------------------------------
 GROUP, A,

__, BOARD, "Hour to start:" , W_C2C, "Hour to start" , 0 , _,ON_TOP, "Hour to start" , 0 ,  

__, BOARD, "End hour:" ,      W_C2C, "End hour" ,     0 , _,ON_TOP, "End hour" ,     0 ,   

 END_GROUP,
//--------------------------
i,BOARDS, FONT_SIZE, 11 ,ADAPT_2_GRADIENT, "MF" , text,N_COLOR,( int ) C'180,149,129' ,   END,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,

__, H_LINE, "HL3" ,W, 188 ,_,N_COLOR,( int ) C'255,223,199' ,

END_GROUP,
//----------------------
 i, AT, _X2X, "R1" , 1 , _Y2Y, "R1" , 1 ,

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

//----------------------------------------------------------------------------------
GROUP, A,

__, V_LINE, "vL" ,H, 61 ,_,N_COLOR,( int ) C'255,223,199' ,

END_GROUP,
//------------------------------------
 i, AT, _X2X, "R1" , 1 , _Y2Y, "R1" , 1 ,

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

//----------------------------------------------------------------------------------
GROUP, A,

__, H_LINE, "HL5" ,W, 190 ,_,N_COLOR,( int ) C'199,163,139' ,

END_GROUP,
//----------------------
 i, AT, _X2X, "R1" , 1 , _Y2H, "R1" , 0 ,

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

//----------------------------------------------------------------------------------
GROUP, A,

__, V_LINE, "vL2" ,H, 63 ,_,N_COLOR,( int ) C'199,163,139' ,

END_GROUP,
//----------------------
 i, AT, _X2W, "R1" , 0 , _Y2Y, "R1" , 1 ,

//----------------------------------------------------------------------------------------------------
GROUP, A,

__, LABEL,A, N_LABEL, "Time (32x32)" ,

END_GROUP,
//--------------------------
i, AT, _X2X, "MF" , 3 , _Y2Y, "MF" , 5 ,
//----------------------------------------------------------------------------------
END_WINDOW,
//***************************************************************************************************************************************** *
 

Tabii ki, kod büyük. Ama son derece BASİT.

En önemlisi, önceden ayarlanmış özelliklere (boyut, renk, gradyan) sahip olan öğeler koddan kolayca alınabilir ve diğer pencerelere kopyalanabilir.

Sözdizimi yok, sınıf yok, vs... Sadece bir öğeyi veya bir grup öğeyi veya bütün bir pencereyi alıp herhangi bir yere yapıştırdılar. Tüm.

Sonra bir şeyi değiştirdiler ve yeni bir eleman, bir grup eleman veya bir pencere aldılar.

 
Реter Konow :

...Ama yapıcının olanaklarını göstermeye çalıştım...

İşte: NEW_WINDOW, W_NAME, "Zaman sınırları" , W_ICON, "Program (16x16)" , W_TYPE, SETTINGS, ALWAYS_ON_TOP,

OOP'yi tasvir etmeye çalışıyorsunuz, ancak bu şekilde ... kendi yönteminizle. Bu aslında bir yapıcı çağrısıdır: new Qwerty(z, x, c).

 
Dmitry Fedoseev :

İşte: NEW_WINDOW, W_NAME, "Zaman sınırları" , W_ICON, "Program (16x16)" , W_TYPE, SETTINGS, ALWAYS_ON_TOP,

OOP'yi tasvir etmeye çalışıyorsunuz, ancak bu şekilde ... kendi yönteminizle. Bu aslında bir yapıcı çağrısıdır: new Qwerty(z, x, c).

Belki. Ama burada sıra önemli değil.

Örneğin:

NEW_WINDOW,  W_NAME, "Time limits" ,  W_ICON, "Schedule (16x16)" ,  W_TYPE, SETTINGS, ALWAYS_ON_TOP,

veya

NEW_WINDOW, W_ICON, "Schedule (16x16)" , W_NAME, "Time limits" ,     ALWAYS_ON_TOP, W_TYPE, SETTINGS,


Fark yok.

Lütfen aynı tipteki tüm bir öğe grubu için özelliklerin hemen ayarlanabileceğini unutmayın:

i,BOARDS, FONT_SIZE, 11 ,ADAPT_2_GRADIENT, "MF" , text,N_COLOR,( int ) C'180,149,129' ,   END,
 
Реter Konow :

Belki. Ama burada sıra önemli değil.

Örneğin:

veya


Fark yok.

Lütfen aynı tipteki tüm bir öğe grubu için özelliklerin hemen ayarlanabileceğini unutmayın:

Sıra önemli değilse, araç ipucu yoktur. Ve parametrelerle bir fonksiyon veya sınıf kurucusunu çağırdığınızda, derleyici parametreler hakkında ipuçları verir. Ve biliyorsun, bu çok önemli bir yardım. Yani standart yaklaşım belli bir yağ artısı.

 
Реter Konow :

Standart kütüphanenin grafik seviyesi, en hafif tabirle çok iyi değil. Örneğin, bu tür pencereler oluştururken işçilik maliyetleri:

Büyük. BU NEDENLE CİDDİ BİR ŞEY OLUŞTURULMAZ.

Standart kitaplık ile prensipte bu tür grafikleri oluşturmanın mümkün olduğundan şüpheliyim.

Sadece iletişimsizsin :(

Her şey çok basit ve hızlı. Tüm pencereleriniz standart bir kitaplık haline getirilebilir. Tabi ki yapmayacağım :)


Dosyalar:
HelloWorld1.ex5  250 kb
 
Yury Kulikov :

Sadece iletişimsizsin :(

Her şey çok basit ve hızlı. Tüm pencereleriniz standart bir kitaplık haline getirilebilir. Tabi ki yapmayacağım :)


Ve bunu, bir düğmeye basıldığında bir kontrol grubu görüntülenecek ve başka bir düğmeye basıldığında başka bir kontrol görüntülenecek şekilde yapmaya çalışın. Aynı zamanda, pencere küçültülebilir ve büyütülebilir. Ayrıca birçok seçeneğin olabileceği varsayılmaktadır.

Peter'a bu sorunu nasıl çözebileceğini sormak ilginç olurdu.

 
Dmitry Fedoseev :

Ve bunu, bir düğmeye basıldığında bir kontrol grubu görüntülenecek ve başka bir düğmeye basıldığında başka bir kontrol görüntülenecek şekilde yapmaya çalışın. Aynı zamanda, pencere küçültülebilir ve büyütülebilir. Ayrıca birçok seçeneğin olabileceği varsayılmaktadır.

Peter'a bu sorunu nasıl çözebileceğini sormak ilginç olurdu.

Bir olasılık var. Bir öğenin başka bir öğenin veya bir grup öğenin görünümünü kontrol etmesini sağlayabilirim. Eh, normal sekmeler de elbette çalışır.

Bugün böyle bir motor yapacağım ve göstereceğim.

 
Dmitry Fedoseev :

Ve bunu, bir düğmeye basıldığında bir kontrol grubu görüntülenecek ve başka bir düğmeye basıldığında başka bir kontrol görüntülenecek şekilde yapmaya çalışın. Aynı zamanda, pencere küçültülebilir ve büyütülebilir.

Sorun nedir? Standart kitaplığı araştırmak için zamanım yok, ancak gizle/göster sorunu çözmezse, kapsayıcıları, istemci alanlarını veya iletişim kutusunun kendisini geçersiz kılmak muhtemelen iyi bir fikirdir.

 
Yury Kulikov :

Sorun nedir? Standart kitaplığı araştırmak için zamanım yok, ancak gizle/göster sorunu çözmezse, kapsayıcıları, istemci alanlarını veya iletişim kutusunun kendisini geçersiz kılmak muhtemelen iyi bir fikirdir.

Bilmiyorum denedim ve olmadı.

Neden: