Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Kitle kaynaklı GUI. Açık beta testi.
Alexey Barbashin , 2020.03.07 21:25
"ama her şeyi nesnelerde yapmak daha kolay olabilir" - bu mantıklı olmaktan daha fazlasıdır
"Evet, elbette, kısmen buna güveneceğiz." - o zaman hemen düzeltiriz:
class CCoordPBase Наследуемся от CObject, то есть: class CCoordPBase : public CObject Хотя наверное можно и по другому: class Control : public CObject
CObject, geliştirici kitaplığındaki tüm nesnelerin temel sınıfıdır. C++ ve C# ile kıyaslanarak yapılmıştır. Sharpe'da temel nesne (tür) Object'tir.
Koordinatlar ve boyutlar zaten öğenin (kontrolün) özellikleridir, ayrıca tabanın rengi , çerçevenin rengi ve kalınlığı, yuvarlama yarıçapları, simge ve metin.
İlk önce, kompozisyon açısından temel olarak hangi tür kontrolü ele alacağımızı belirlemelisiniz ve bundan dans edin, yani temel özellikleri tanımlayın.
Tabii ki, daha önce tanımlanmış özelliklerden bazıları torunlarda daha fazla kullanılmayabilir, bu artık bir sorun değil, ancak temeli en evrensel hale getirmek daha iyidir.
Uzaklara bakmamak için, en basit evrensel kontrolün örnek bir örneği:
Arka plan, kenarlık, yarıçap, simge, metin içerir
Etiket almanız gerekiyorsa arka plan, kenarlık ve simge belirtilmez, Panel gerekiyorsa içerik belirtilmez, resim düğmesi gerekiyorsa yalnızca simge belirtilir, bir resim gerekli, daha sonra arka plan, çerçeve ve resim belirlenir..
Yani, böyle bir bileşim çoğu kontrol için oldukça evrenseldir.
bununla açık, koordinatları korurken vurgulu stili değiştirme sorunu ... zaten açık gibi görünse de
Standart bir kontrol kütüphanesi var mı?
CObject'in özü, tüm nesneleri yazmaktır.
Örneğin, bir liste kitaplığına ihtiyacımız var (eleman listesi, birleşik giriş kutusu, kontrol listesi vb.). Her eleman tipi için Anatoly'nin yaptığı gibi kendi dizi tipimizi oluşturabiliriz veya hazır bir araç kullanabilirsiniz: CArrayObj
Yani birçok kod parçasının icat edilmesine gerek yok, zaten varlar, alın ve kullanın.
bununla açık, koordinatları korurken vurgulu stili değiştirme sorunu ... zaten açık gibi görünse de
Standart bir kontrol kütüphanesi var mı?
Temel olarak, standart kütüphaneyi geliştiricilerden alabilirsiniz, bunda, hiyerarşilerinde utanç verici bir şey görmüyorum.
Tabii ki, doğrudan inşaatla bağlantılı her şey oradan atılmalıdır, ancak olay aktarım sistemi bırakılmalıdır - gerçekten evrenseldir!
Bu teknolojiye göre, en karmaşık kontrol elemanı bile hangi sınıfa ait olursa olsun, olaylar yazılı bir temel nesne sistemi aracılığıyla iletilecektir.
Ana kontrolün çizimi, temel CControls'de gerçekleştirilecek ve ardından OnPaint() olayı oluşturulacaktır. Bu, torunları bitirmenize/yeniden çizmenize izin verecek ve genellikle kullanıcıya kontrolü istediği gibi yeniden çizme fırsatı verecektir.
Haydi!!!!!
ve hemen temel bir etkileşimi dosyalamayı düşündüm
bir satırda veya bir sütunda sıralanması durumunda önceki nesnenin solunda sözde konumlandırma yapacağımız yer
genel olarak, evrensel bir kontrol yazıyoruzBunu tam olarak böyle oluşturmanız gerekir: temel bir etkileşimi dosyalayın.
Başlangıç seviyesindeki temel kontrol, gerekli tüm özelliklere sahip olmak zorunda değildir, sadece bir arka plan yeterli olacaktır.
Sonuçta, kontrolün kendisini çizmek için ilgili işlevi içerecektir. Bu nedenle, herhangi bir özellik eklerken, yalnızca tek bir işlevin tamamlanması gerekecektir.
Öğe hiyerarşisine göre mi?
CObject - temel tür
class CControl : genel CObject - kitaplığın kendisinin temel kontrolü
class CCContainerControl : genel CControl - grup kontrolü. Alanlarından biri bir dizi iç içe kontrol olacaktır. CWndContainer standart kitaplığında bir örnek görebilirsiniz.
Sasha, zaten kodlamaya başladığınıza göre, MQL'de açık bir proje yapın, ortak geliştirme yapmak mümkün olacak ve isteyenler buna bağlanabilir. Kim bilir belki vardır.
ara verdiğimde ... standart kitaplıklara bakıyorum .... bir sürü ekstra şey var
çok olmasa da))) ancak kendi denetleyicinizi yazmanız daha doğru olur ... iyi, ya da hemen miras alınCChartObject
- www.mql5.com
Sasha, zaten kodlamaya başladığınıza göre, MQL'de açık bir proje yapın, ortak geliştirme yapmak mümkün olacak ve isteyenler buna bağlanabilir. Kim bilir belki vardır.
Bence sıfırdan çok erken, önce bir şeyler atmalısın
ara verdiğimde ... standart kitaplıklara bakıyorum .... bir sürü ekstra şey var
çok olmasa da))) ancak kendi denetleyicinizi yazmanız daha doğru olur ... iyi, ya da hemen miras alınCChartObject
Hayır hayır!!
Dikkatli bak!
Bu kontrol hiçbir yere giden yol değil! Ayrık grafik nesnelerine ihtiyacımız yok! Tuval üzerine çizim yapmanız gerekiyor - sadece bu gelişme ve bol fırsatlar sağlayacaktır.
Ve kendi ana kontrolünüzü yapmanız gerektiği gerçeği açık.
Standart kitaplıkta, özellikler ve durumlar CWndObject ve CWnd arasında bölünür, ancak her şeyi tek bir kontrolde birleştirmemiz gerekir.
Hayır hayır!!
Dikkatli bak!
Bu kontrol hiçbir yere giden yol değil! Ayrık grafik nesnelerine ihtiyacımız yok! Tuval üzerine çizim yapmanız gerekiyor - sadece bu gelişme ve bol fırsatlar sağlayacaktır.
Ve kendi kontrolünüzü yapmanız gerektiği gerçeği açık.
Standart kitaplıkta, özellikler ve durumlar CWndObject ve CWnd arasında bölünür, ancak her şeyi tek bir kontrolde birleştirmemiz gerekir.
Çeyrek saat boyunca bir proje oluşturmaya çalıştım - ve ortaya çıkmak için yaratıldı, şimdi onu nasıl halka açık hale getireceğime bakıyorum
Bence sıfırdan çok erken, önce bir şeyler atmalısın
Eminim sıfırdan ve buna değmez.
Çok zeki insanlar aynı standart kütüphaneyi ya da Anadolu kütüphanesini yapmak için çok zaman ve bilgi harcamışlardır.
İnsanlar zaman ve bilgiyi boşa harcadılar ve onu kullanmamak aptallık olur.
Sadece bizim açımızdan her ikisinde de en iyisini alıp yeniyi toplamanız gerekiyor.
Başkalarının hatalarından ders almanız gerekir. Kendimizi yaratacağız :)
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz