Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Programlarda açıklanan nesne sistemlerinde OOP ve Kernel'in bir melezi olan yeni prizmama baktım - beynim neredeyse patlayacaktı. Her şeyden önce, GUI'min sistemlerine yeni bir göz attım. Tüm bu parametre nesneleri, durum nesneleri, olay nesneleri ve işleyici nesneleri aracılığıyla. GUI ve teknolojisi benim için bilindiğinden, her şey kendini oldukça net bir şekilde sundu, ancak sistemin çok karmaşık olduğu ortaya çıktı. Çok sayıda parametre, bağlama ve işleyici. Bu tür sistemlerin kendi kendine oluşamayacağı sonucuna vardım. Ve doğal seleksiyon burada güçsüzdür.)))
Bu yüzden:
Her parametre, n'inci sayıda türetilmiş parametreye sahip olabilir. Diyelim ki: X'teki bir değişiklik, zamanın her anında bu X'in değerlerinden sonsuz sayıda parametre türevine yol açabilir.
Her türetilmiş parametrenin bir işleyicisi ve diğer parametrelere bir bağlantısı olmalıdır. Hiçbir parametre kendi başına mevcut değildir. İletişim gereklidir.
Bağlantı farklı olabilir ve bu nedenle çok çeşitli filtre işlemcileri, düzelticiler ve dönüştürücüler görünebilir.
Sistemler için önemli sayılabilecek sonsuz sayıda olay vardır. Her birinin kendi özellikleri, bağlantıları ve işleyicileri vardır. Seçenekler sayısız.
Dolayısıyla bir kavram olmadan hiçbir sistem var olamaz. (Büyük olasılıkla).
Dünya'da yaşamın nasıl ortaya çıktığı belli değil...
Başka bir örnek vereyim:
Bir tabloya göre kontrolleri olan bir pencereyi hareket ettirmek için bir sistem düşünelim.
Böylece bu sistem sayesinde, imleç ile tutamağını kavrama durumunda pencerenin ve nesnelerinin koordinatlarını değiştirebiliyoruz. Taşımak için, tüm bunları, MT nesnesinin grafikteki konumunu değiştiren ObjectSetInteger işleyici işlevleriyle ilişkilendirmeniz gerekir.
Bu, özel blok sistemlerini bağlayarak yalnızca bir GUI işlevinin uygulanmasıdır - Parametre Nesneleri, İşleyici Nesneleri, vb...
Çekirdekte böyle bir sistem oluşturmak, her şeyi bir Nesneye dönüştürmeden sıradan kod yazmaktan neredeyse kolay (ve belki de daha zor) değildir. Ama kazmaya devam edeceğim...
not. Pencereyi hareket ettirmek için eklemeyi unuttum, ayrıca pencere tutamağına basıp imleci hareket ettiren bir olay nesnesi "yapmanız" gerekiyor. Ve bu Olay-Nesnesini, imlecin x,y değerlerinin (türetilmiş parametrelere farkı yazan) Nesne-işleyicisine bir bağlantı ile bağlayın, böylece sadece bu olayın sinyali üzerinde çalışacaktır.
ZYY. Ve her Olay Nesnesi için kendi işleyici Nesnenizi oluşturmanız ve ona bağlamanız gerekir.
ZYYY. Ve her işleyici nesnesinin, parametreler veya olaylarla çalışırken değerlerini kullandığı kendi özellikleri vardır. Bu nedenle, bir şablon olmalı, aksi takdirde tüm bunları oluşturmaktan "yorulabilirsiniz".))
Başka bir örnek vereyim:
Bir tabloya göre kontrolleri olan bir pencereyi hareket ettirmek için bir sistem düşünelim.
Böylece bu sistem sayesinde, imleç ile tutamağını kavrama durumunda pencerenin ve nesnelerinin koordinatlarını değiştirebiliyoruz. Taşımak için, tüm bunları, MT nesnesinin grafikteki konumunu değiştiren ObjectSetInteger işleyici işlevleriyle ilişkilendirmeniz gerekir.
Bu, özel blok sistemlerini bağlayarak yalnızca bir GUI işlevinin uygulanmasıdır - Parametre Nesneleri, İşleyici Nesneleri, vb...
Çekirdekte böyle bir sistem oluşturmak, her şeyi bir Nesneye dönüştürmeden sıradan kod yazmaktan neredeyse kolay (ve belki de daha zor) değildir. Ama kazmaya devam edeceğim...
not. Pencereyi hareket ettirmek için eklemeyi unuttum, ayrıca pencere tutamağına basıp imleci hareket ettiren bir olay nesnesi "yapmanız" gerekiyor. Ve bu Olay-Nesnesini, imlecin x,y değerlerinin (türetilmiş parametrelere farkı yazan) Nesne-işleyicisine bir bağlantı ile bağlayın, böylece sadece bu olayın sinyali üzerinde çalışacaktır.
ZYY. Ve her Olay Nesnesi için kendi işleyici Nesnenizi oluşturmanız ve ona bağlamanız gerekir.
ZYYY. Ve her işleyici nesnesinin, parametreler veya olaylarla çalışırken değerlerini kullandığı kendi özellikleri vardır. Bu nedenle, bir şablon olmalı, aksi takdirde tüm bunları oluşturmaktan "yorulabilirsiniz".))
Karmaşık. Bu mantıksız bir şekilde zor.
Pekala.
İmlecin x,y farkını içeren türetilmiş parametreler ile (zincirlenmiş) form nesneleri arasındaki bağlantı, merkezde her form nesnesinin x,y parametrelerine seri olarak bağlanabilen bir işleyiciye sahiptir. Diğer bir deyişle, bir seri bağlantı işleyicisi aracılığıyla parametreleri bağlama, her form nesnesinin bağlamasını x,y fark değerlerini geçen türetilmiş parametrelerle değiştirmenize olanak tanır. Ben de bunu düşündüm.
GUI'mde, bir pencereyi taşımak, aşağıdakileri yapan bir işlevin içinde uygulanır:
(1) Pencere tutamağında tıklama olayını kontrol etme
(2) İmleç hareket olayı
(3) Mevcut ve geçmiş imleç koordinatları arasındaki farkı hesaplama
(4) Pencere nesneleri arasında bir döngü yapmak ve imleç konumundaki farkı düzelterek koordinatlarını değiştirmek.
(5) Pencere şeklinin (tuval) MT-nesnesini çizelge boyunca belirtilen mesafe kadar hareket ettirmek için ObjectSetInteger'ı çağırmak .
Yani fonksiyon içindeki uygulama doğrudur. İşleyici Nesneleri, Parametre Nesneleri ve Bağlantı Nesneleri aracılığıyla uygulama bu arka plana karşı garip görünüyor. Ama kazalım...
Pekala.
İmlecin x,y farkını içeren türetilmiş parametreler ile (zincirlenmiş) form nesneleri arasındaki bağlantı, merkezde her form nesnesinin x,y parametrelerine seri olarak bağlanabilen bir işleyiciye sahiptir. Diğer bir deyişle, bir seri bağlantı işleyicisi aracılığıyla parametreleri bağlama, her form nesnesinin bağlamasını x,y fark değerlerini geçen türetilmiş parametrelerle değiştirmenize olanak tanır. Ben de bunu düşündüm.
GUI'mde, bir pencereyi taşımak, aşağıdakileri yapan bir işlevin içinde uygulanır:
(1) Pencere tutamağında tıklama olayını kontrol etme
(2) İmleç hareket olayı
(3) Mevcut ve geçmiş imleç koordinatları arasındaki farkı hesaplama
(4) Pencere nesneleri arasında bir döngü yapmak ve imleç konumundaki farkı düzelterek koordinatlarını değiştirmek.
(5) Pencere şeklinin (tuval) MT-nesnesini çizelge boyunca belirtilen mesafe kadar hareket ettirmek için ObjectSetInteger'ı çağırmak .
Yani fonksiyon içindeki uygulama doğrudur. İşleyici Nesneleri, Parametre Nesneleri ve Bağlantı Nesneleri aracılığıyla uygulama bu arka plana karşı garip görünüyor . Ama kazalım...
Evet, çünkü bu işleyicileri nesneden ayrı olarak yapmanız gerekmez. İmleç koordinatlarını döndüren sınıf statik hale getirilebilir - programın herhangi bir sınıfı tarafından kullanılabilir ve koordinatları alma ve bunlara tepki verme her nesnede uygulanmalıdır. Ancak bu işleyicilere yapılan çağrı yalnızca formun ana nesnesi üzerinde olmalıdır. Ardından, formun diğer tüm nesneleri için yeni koordinatlar belirlemek ve yeniden çizmek yeterlidir. Form nesnesinin içinde tüm nesnelerinin bir listesi bulunur. Form nesnesi koordinatlarında bir değişiklik tespit etti - koordinatları için yeni değerler ayarlar, nesnelerinin listesini gözden geçirir ve listesindeki her nesnenin koordinatlarını ayarlama yöntemlerini çağırır. Aynı zamanda, sonraki her nesne, koordinatlarını değiştirirken aynı şeyi yapar - nesnelerinin listesine bakar ve onlara koordinatları değiştirme komutu verir. Listelerde nesneler çizildikleri sıraya göre (Z-dizisi) düzenlenir. Yani, her nesnenin kendi koordinat değiştirme yöntemi vardır, ancak aynı şekilde uygulanır - tüm "kendi" nesnelerinin listesine bakar ve her biri için aynı yöntemi çağırır. Böylece, ana form nesnesi üzerinde bu yöntemi bir kez çağırarak, kesinlikle tüm form nesneleri için koordinat değişikliğini otomatik olarak başlatacağız. Form nesnesinin "kendi" nesnelerinin tüm listesini işledikten sonra, grafiği yeniden çizme yöntemi çağrılır - değiştirilen tüm nesneler için bir kez.
...
Bu, pencere hareket mekanizmasının standart OOP görünümüdür. Sana bir tane daha göstereceğim. Bunu yapmak için bir anlığına zihninizi boşaltın ve sadece düşüncemi takip edin.
Bu hikayenin sonu...
Matrix'e yandan baktık ve nefesimiz kesildi! "Evet, Nesne sistemini yarattık!"))
not. Her şeyin bir matris dizisinde oluşturulabileceğini unutmayın. Ve dizi matrisi Çekirdektir. Ve içindeki varlıklar gerçek nesnelerdir. Ve parametreler, olaylar ve paketler, özellikler ve işleyiciler. Çekirdekte bu temel şeylerden oluşturulabilecek sayısız sistem var.
Komik devam filmi...
11. Modanın ilk doğan parametrelerini nasıl takip edeceğine karar verdi. Matrisin bir yerinde bir emlak fuarı olduğunu ve yenilikte belirli bir alan olduğunu öğrendik. Mesela üç özelliği var. "Ölçüler" denir. Bu özellikler için değer seçiminin sözde sonsuz olduğu ve bonus olarak "parametre-zamanı" da bonus olarak veriyorlar. Parametreler fuara geldi ve x, y, x_size, y_size özelliklerini aldı. Uzayda kendimize bir kabuk yapmak istediğimizi söylüyorlar. Eh, başka bir renk (renk) yakaladılar. Döndüler ve yeni mülklerde giyinmeye başladılar. Yorulana kadar kendilerine uzamsal kabuklar kalıba döktüler. Acayip büyümüşler, sonra çökmüşler... Sonra renkleri giyip sakinleşmişler. Bundan sonra ne yapacaklarını düşünmeye başladılar... Ve sonra, özellikler-zaman kutusuna baktılar. Düşünsünler, nasıl bir şey deneyelim... Açmışlar, kendilerine göre ayarlamışlar ama değerleri hesaplamamışlar ve bir anda buharlaşıp boşluğa düşmüşler. Sonuçta, zaman çok dikkatli olmanız gereken bir parametredir ...
Komik devam filmi...
11. Modanın ilk doğan parametrelerini nasıl takip edeceğine karar verdi. Matrisin bir yerinde bir emlak fuarı olduğunu ve yenilikte belirli bir alan olduğunu öğrendik. Mesela üç özelliği var. "Ölçüler" denir. Bu özellikler için değer seçiminin sözde sonsuz olduğu ve bonus olarak "parametre-zamanı" da bonus olarak veriyorlar. Parametreler fuara geldi ve x, y, x_size, y_size özelliklerini aldı. Uzayda kendimize bir kabuk yapmak istediğimizi söylüyorlar. Eh, başka bir renk (renk) yakaladılar. Döndüler ve yeni mülklerde giyinmeye başladılar. Yorulana kadar kendilerine uzamsal kabuklar kalıba döktüler. Acayip büyümüşler, sonra çökmüşler... Sonra renkleri giyip sakinleşmişler. Bundan sonra ne yapacaklarını düşünmeye başladılar... Ve sonra, özellikler-zaman kutusuna baktılar. Düşünsünler, nasıl bir şey deneyelim... Açmışlar, kendilerine göre ayarlamışlar ama değerleri hesaplamamışlar ve bir anda buharlaşıp boşluğa düşmüşler. Sonuçta, zaman çok dikkatli olmanız gereken bir parametredir ...
Ve ilk on ciddi miydi?
Mesela ben gülmeden okuyamıyorum.
...
Bütün bu "nesnellik" beyinleri çok karıştırıyor, hemfikir olmalısınız... Buna dikkat etmelisiniz. Nikolai Semko, deha ve şizofreninin yakınlığından bahsederken haklıydı. Gidebilirsin". Anlaşılmaması daha iyi olan şeyler var. Bazı kapılar her zaman Bilincimize kapalı olmalıdır. Bir filmde dedikleri gibi, - "En tehlikeli parazit bir fikirdir. Bir kez beyne bir kez girdi mi, onu ayırt etmek zaten imkansızdır." Bahsettiğim matris Zihin için tehlikelidir. İçinde kaybolmak ve sonsuza kadar kaybolmak kolaydır. Dikkatli olalım.)))