Dikkat! Yarışma! - sayfa 13

 

ayy)

Dereban seçeneğine ve kamuoyunda tartışmaya katılıyorum, çok faydalı olacaktır.

 
TheXpert :
Evet evet! Ancak sorun. komposter ve tol64 konuya çağrılır

Teşekkür ederim. Yarışmaya katılmadım çünkü şu anda çok büyük bir proje üzerinde çalışıyorum. Yakında herkesin kullanımına sunulacak. Tartışılacak bir şey olacak ve buna dayanarak çeşitli yarışmalar düzenlemek de muhtemelen mümkün olacak. Şu anda daha fazla ayrıntı veremem. )

 
Hadi gidelim :)
Класс для работы с кнопками произвольной формы
Класс для работы с кнопками произвольной формы
  • 2015.03.18
  • Dmitriy Parfenovich
  • www.mql5.com
Класс предназначен для создания интерактивных кнопок на графике цены с различными состояниями.
 
fyords :
Hadi gidelim :)

Benimki hala kontrol ediliyor... Gördüğümde yazarım..

Katma:

İşte benim versiyonum :)

 
fyords :

Baktım - 5 puan :) Kullanıcının standart bir kitaplığa ihtiyacı yoksa sürümünüz daha iyidir.

Aslında, bu kütüphaneye bu kadar bağlı olduğum için - şu anda üzerinde çalıştığım, onun temelinde yazılmış bir programım var. Tasarım çok hantal, geliştirmek istedim. Ve sonra sadece bir rekabet vardı - benim için çok alakalı olduğu ortaya çıktı.

Uygulamanızın avantajlarından :

1)       Koltuk değneği yok. Ben bu var ve standart sınıfların kalıtımı, vb. standart kitaplıkla uyumluluğu sürdürmekten keyif alıyor.  

2)       Düğmenin durumu ve nesnenin grafikteki durumu aynıdır.

3)       Fonksiyonlarda, hatalar için giriş değerlerinin kontrolü vardır. Bunu bir yerde özledim...

4)       Expert Advisor'daki düğmeler daha zarif bir şekilde oluşturulur (iç içe geçmiş bir döngü aracılığıyla). Lanet olsun, bunu daha önce düşünmemiştim.

5)       Yalnızca grafik bağlantı açısını değil, düğme bağlantı açısını da ayarlayabilirsiniz. Dürüst olmak gerekirse - nerede işe yarayacağını bilmiyorum :) ama aniden ...

6)       Resimler 6 adet kullanılmıştır. Bende 4 tane var.

7)       CCanvas - butona bir şeyler yazabilirsiniz. Birkaç özellik ekleyin ve hepsi bu. Çok dilli uygulama durumunda çok uygundur. Yine koltuk değneklerini çitle çevirmem gerekecek.

sekiz)       Kodunuzu çok daha hızlı anlayabilirsiniz.

Nelerin geliştirilebileceğini fark ettim:

1)       Sohbeti, düğme kısmen gizlenecek şekilde (alttan veya üstten) küçültürseniz, düğmenin arka ışığı sıfırlanmaz (resme bakın).  

2)       “Yapışkan olmayan düğmeler” oluşturma olasılığını görmedim. Onlar. battı ve hemen ortadan kayboldu (standart olanlara benzer şekilde).

3)       Şeffaflığı tanımlamanın çok daha karmaşık bir yolunuz var. Nasıl çalıştığını bile anlamadım. Resimleri kendin pişirirsen, benimki gibi yapmak daha kolay. Onlar. Görüntüden saydamlığı bir işlevle çıkarıyorum (bunun için teşekkürler Tamsayı ):

 double GetAlfa( uint   aColor)
  {
   return ((aColor>> 24 )& 0xff );
  }

Sonra eşik seviyesi ile kontrol ediyorum (250 aldım ama tabii ki ayarlayabilmem için bir fonksiyon eklemem gerekiyor):

 double alfa=GetAlfa(data[y*m_SizeX+x]);
 if (alfa> 250 )
   {
    m_T[y*m_SizeX+x]= true ;
   }
 else
   {
   m_T[y*m_SizeX+x]= false ;
   }

Bununla birlikte, grafiği açmadan hazır resimlerle çalışırsanız. editör, o zaman sürümünüz büyük olasılıkla daha uygun olacaktır.

Not: Az önce CCanvas sınıfının şeffaflığı belirleme işlevi olduğunu fark ettim:

 #define GETRGBA(clr)   uchar ((clr)>> 24 )
 

Teşekkür ederim. Şimdi seninkine bir bakacağım.

MigVRN :

Nelerin geliştirilebileceğini fark ettim: ...

  1. İşaretçi pencerenin dışına çıkarsa, "mouse move" olayı oluşturulmaz ve bu nedenle bu hata düzeltilemez gibi görünüyor.
  2. Görevde böyle bir şey yoktu, ancak bitirmek çok fazla iş olmayacak.
  3. Bana öyle geliyor ki şeffaflıkla her şey daha kolay: 2 puan alıyoruz (en koyu ve en açık), ortalama değer eşik olacak. Resimde saydam yerler varsa, en koyu renk 0'a doğru kayar. Bu nedenle eşik değeri de olur.
    Aynı işlevin hem şeffaflık hem de ayrı bir maske ile çalışması nedeniyle bu karar alındı.
    Ayrı olarak, not etmek istiyorum - bu yöntem (ayrı bir maske), resimleri saydamlık olmadan kullanmanıza izin verir. Belki geliştirici, grafik düzenleyiciyle arkadaş canlısı değildir :)
    Peki ya da maskenin rengini belirten seçenek - bir seçenek olarak, yeşil düğme için beyaz rengi belirtin ve şeffaflığa yakın bir tef ile ek danslar ve ek maskeler olmadan "saydam hale gelecektir".
 
MigVRN :

Orada senin için bir iş yaptım... Cevap bekliyorum.

Katılımcılara teşekkürler.

 
TheXpert # :
Evet. Resimdeki düğme alanı opak alandır.