MQL ile yazılmış kullanıcı arayüzleri galerisi - sayfa 72

 
Zaman geçiyor ve görsel editör fikri zihnimde yaşamaya devam ediyor. Beni terk etmek istemiyor. Ve boş zamanlarımda düşündüğümde, her seferinde kendime şu soruyu soruyorum: "Sorun ne? - Onu zaten yarattım, sadece açık değil."

Uzun süre düşündüğümde yine aynı sonuçlara ulaştım: görsel editörün temel işlevleri benim uygulamamda zaten mevcut ve sadece karmaşık araçlar eksik. Bununla birlikte, karmaşık şeyler, pratikte görsel moddan çok daha hızlı ve daha kullanışlı olan biçimlendirme dili aracılığıyla oluşturulabilir.

Örneğin, tablolar ve ağaç listeleri - bunları manuel olarak oluşturmak uzun ve zahmetlidir, ancak bunları kib kodunda yazmak hızlı ve kolaydır... özellikle şablonlar kullanıldığında. Özellikle de şablonlar kullanıldığında. Öyleyse neden tablolar ve listeler için basit kopyala-yapıştır yöntemiyle oluşturabileceğiniz hantal görsel düzenleme araçları icat etmekle uğraşasınız ki? Bunun bir anlamı yok, bu oldukça açık. Ama o zaman sorun nedir?

Çok basit. Görev, biçimlendirme dilinin çalışması ile görsel editörün mevcut yeteneklerini birleştirmektir. Ne birincisine ne de ikincisine yeni bir şey eklemek gerekmez - sadece birbirlerini tamamlayacak şekilde birleştirilmeleri gerekir.

Bu konu üzerinde ciddi bir şekilde düşündükten sonra, şu anda görsel GUI yapısına tamamen geçme fırsatı olsa bile, bunu reddedeceğim sonucuna vardım. Bunun nedeni, kib kodu şablonlarını kullanma ve işaretleme dili ortamındaki öğeleri veya özellikleri basitçe kopyalayıp yapıştırma fırsatını kaybetmek istememem. Bu çok değerli bir avantaj. Belki de sadece benim için değil, geliştirmelerini paylaşabilecek veya önceki geliştirmelerinin bazı kısımlarını kopyalayabilecek gelecekteki tüm kullanıcılar için. Bu vazgeçilmez bir şey.

Yani, görsel bir editör uğruna bir işaretleme dilinden vazgeçmek kesinlikle imkansızdır. Daha önce anlamamıştım....

Dolayısıyla bugün sorun, dil ve görsel editör yeteneklerinin uyumlu bir şekilde bir araya getirildiği bir sistem geliştirmektir. Ve aslında teknik olarak bunu yapmak oldukça kolaydır. (1) Öncelikle, görsel editörün gerekli tüm işlevleri birkaç yıl önce yazılmış ve test edilmiştir, (2) ve ikinci olarak, son aylarda, biçimlendirme dilinin temel mekanizmaları iyice sıkılaştırılmış ve yazılım arayüzü yönetiminin eklenmesiyle büyük bir yükseltme gerçekleştirilmiştir. Başka bir deyişle, her şey entegrasyon ve birleştirme için hazırdır ve yapılması gereken tek şey, bir grafik arayüzün modellenmesi ve oluşturulması sürecinde her iki işlevin çatışmasız etkileşimi kavramı üzerinde düşünmektir.

Kavramsal olarak, biçimlendirme dili ve görsel düzenleyici GERÇEKTEN çatışır.

Bu görevi zorlaştıran çeşitli nedenler vardır:

GUI öğelerinin ve pencerelerinin standart olarak kodla yazıldığını, ancak yukarıdaki gif'te gösterildiği gibi bir görsel düzenleyicide de oluşturulabileceğini hatırlayın.

1) Hem birinci hem de ikinci durumda, kurucunun işlevselliği farklı şekillerde de olsa grafik çekirdeği oluşturur, ancak görsel editörün yetenekleri dilinkilerden daha zayıf olduğundan, oluşturulan öğeler editör aracılığıyla kullanıcıdan tam bir ayar seti kabul etmez. Ayarlar bir editör yazarak tamamlanabilir, ancak o zaman işaretleme dili gereksiz hale gelir ve bu kötüdür, çünkü kod şablonlarına güvenme imkanı yoktur. İşaretleme dilinden vazgeçemezsiniz, nokta.

2) Görsel modda yeni öğeler ve pencereler oluştururken, biçimlendirme dili bunları "görmez". Yani, GUI'nin görsel yapısı sırasında biçimlendirme dili güncellenmez. Orijinal kib koduna hiçbir şey "eklenmez". Bu gerçek yine görsel editör ve işaretleme dilinin kavramsal olarak ayrılmasına yol açar. Bu bir çatışma.

Peki, bu durumda nasıl olunmalı ve ne yapılmalı? İki güçlü GUI oluşturma aracının ortak yaşamına yol açan uzlaşma nedir?

Çözümü anlamaya çalışacağım:

Ana nokta: dil özelliklerini değiştirmeden bırakarak arayüzün modellenmesinde görsel editörün rolünü sınırlayın. Pratikte bu şu anlama gelir:

1. Görsel modda yeni öğeler ve pencereler oluşturmayı reddedin, çünkü bunlar eklenirken biçimlendirme kodu güncellenmez.

2. Kullanıcının kib kodundaki varsayılan ve özel değerlerinin üzerine, görsel düzenleyicinin ayar pencereleri aracılığıyla kullanıcı GUI'sinin öğelerinin ve pencerelerinin konumlarını düzenleme ve özelliklerini ayarlama olanağını bırakın. Bu durumda, editör değerlerin geçersiz kılındığı özel bir dosya yazacak ve kaydedecek, buradan çekirdeğe yükleyecek ve öğelere atayacaktır. Aslında bu, editörde "işlenen" yeni bir eleman şablonu türü anlamına gelir. Bunlar kib kodu şablonlarıyla çakışmayacak, sadece bu şablonlarda ayarlanan özellik değerlerini geçersiz kılacaktır.

Bence bu, editör ve biçimlendirme dili arasında etkili bir ortak yaşamdır.

Not: İronik olan şu ki, teknik olarak editör ve dil yeteneklerini birleştirme fikrini birkaç gün içinde gerçekleştirmek mümkün ve oldukça gerçekçi, ancak entegrasyonlarının ve kullanıcının çalışmasındaki etkileşimin tüm ayrıntılarını düşünmek.... bu daha fazla zaman alır. :)

Not: Ancak ana sonuç, birbirlerini tamamlayarak birlikte çalışabilecekleri ve çalışmaları gerektiğidir.
 
Yapmak istediğiniz şey çok uzun zaman alacak ve kaynak kodunuz Neredeyse hiç kimse gelişime katkıda bulunamayacak, kendinize güvenmek zorunda kalacaksınız.
 
hini #:
Yapmak istediğiniz şey çok uzun zaman alacak ve kaynak kodunuz Neredeyse hiç kimse katkıda bulunamayacak, kendinize güvenmek zorunda kalacaksınız.
İlk ifadeye kesinlikle katılmıyorum. Görsel editör kavramı sadece 4 yıl önce düşünülmekle kalmadı, aynı zamanda kullanıcının temel kontrollerden basit bir ayar penceresini kolayca bir araya getirmesine izin verecek şekilde teknik olarak yeterince uygulandı. Tasarımcıda, örneğin, boyutlar ve ızgara ile bilgilendirici işaretleme vardır, bir projeyi kaydetmek ve bir API dosyasını yazdırmak için özellikleri ve işlevleri ayarlamak için bir panel vardır, çerçeveler, resimler ve yazı tipleri ile aynı yardımcı pencereler vardır. Her şey tıpkı bir işaretleme dilinde olduğu gibidir.

Ancak: görsel düzenleyiciyi tamamlamak için bir dosya gezgini şarttır. Projeleri yüklemek ya da kaydetmek için klasör seçme olanağı sağlayacaktır ve iyi haber şu ki dosya gezgini zaten mevcut - daha önce şube sayfalarında göstermiştim - ve ince ayarlara ihtiyaç duysa da temel işlevsellik çalışıyor.

Dosya gezginine ek olarak, kib koduna benzer şablon kavramını geliştirmemiz gerekiyor. İlk başta bunun imkansız olduğunu düşünmüştüm, ancak çözümün son derece basit olduğu ortaya çıktı: bir dosya gezgini varsa, görsel düzenleyici oluşturulan arayüzü bir proje olarak değil, bir şablon olarak kaydedebilecek. Sonuçta, özünde aynı şeydir. Dahası, sadece tüm proje değil, aynı zamanda bu projenin ayrı pencereleri de şablon olarak kaydedilecektir. Bunu yapmak kolaydır, çünkü inşa edilen çekirdeğin sadece bir kısmı kaydedilir ve başka bir projeye yüklenebilir ve kullanıcı gerekli öğeleri çıkarabilir (yukarıdaki gif'te gösterilen kopyalama ile) ve ardından bu şablonu projesinden silebilir. Pencereleri ve öğeleri silme işlevim var. İşte bu kadar.

Tablolar, yukarıdaki gif'teki düğmelerden örneğe göre hücreleri kopyalayarak oluşturulabilir. Aynı şey. Bir ağaç listesi daha karmaşıktır.... ama asıl önemli olan bu değildir.

Büyük bir hevesle her şey bir, bir buçuk ay içinde yapılabilir. Ama şimdi makaleler için materyal hazırlamakla meşgulüm, bu yüzden bu çalışma ertelendi.

Diğer programcıların projeyi geliştiremeyeceği ifadesine gelince..... Evet, projeyi doğrudan geliştiremezler. Ancak çözümler sunabilir, deneyimlerini, fikirlerini paylaşabilir, renkle, gradyanla çalışma işlevleri sunabilirler. Böyle bir etkileşime ve işbirliğine açığım.
 
Реter Konow #:

...

Ancak: görsel düzenleyiciyi tamamlamak için bir dosya gezgini kesinlikle gereklidir. Projeleri yüklemek veya kaydetmek için klasör seçme olanağı sağlayacak ve iyi haber şu ki dosya gezgini zaten var - daha önce şube sayfalarında göstermiştim - ve ince ayar gerektirse de temel işlevsellik çalışıyor.
...


Doğruluğu kanıtlanmamış olmamakla birlikte, dosya gezgininin nasıl çalıştığı aşağıda gösterilmiştir (solda). Sadece editöre entegre etmeniz gerekiyor.

 

Bu video, MT5'teki görsel düzenleyicide ayarlar penceresinin oluşturulmasını gösterir. Düzenleyicinin tamamlanma derecesini kabaca değerlendirebilirsiniz.


 
hini #:
Yapmak istediğiniz şey çok uzun zaman alacak ve kaynak kodunuz neredeyse hiç kimse gelişime katkıda bulunamayacak, kendinize güvenmek zorunda kalacaksınız.
Bu yazıyı hangi amaçla yazdığınızı merak ediyorum. :) Sadece merak ediyorum.

Belki de diğerleri gibi siz de çabalarımın ve isteklerimin boş olduğunu fark etmemi sağlamaya çalışıyorsunuz..... hedeflerimin ulaşılamazlığını fark etmem için beni kışkırtmaya... Belki de bana başka bir yol bildiğini göstermeye çalışıyorsun. Ya da Tanrı bilir başka ne.

Ama dürüst olacağım - önemli değil. Makaleleri yazacağım ve görsel editörü bir zamanlar amaçladığım gibi bitireceğim. Ve bırakın herkes için işe yaramaz bir "boşluktaki küresel at" olarak kalsın. Bırakın öyle kalsın.

Benim için bu önemli bir gelişim aşaması.

Altını çiziyorum: benim için gelişimin önemli bir aşaması.

Bu nedenle, editör "sadece olacak". Benim, sizin veya bir başkasının muhakemesi, düşüncesi, argümanları, karşı argümanları, akıl yürütmeleri, değerlendirmeleri, ruh halleri, iç çekmeleri, kafa sallamaları vs. ne olursa olsun.

Görsel editör SADECE OLMAKTADIR (bitmiştir).

"Neden", "ne için", "nasıl" ve "niçin" uygulanacağına...ya da uygulanmayacağına.... birakin herkes kendi̇si̇ karar versi̇n... KENDİSİ İÇİN.

Barış için. :)
 
Реter Konow #:
Bu yazıyı hangi amaçla yazdığınızı merak ediyorum. :) Sadece merak ettim.

Belki de diğer pek çokları gibi siz de bana çabanın ve gayretin beyhudeliği hakkında bir mesaj iletmeye çalışıyorsunuz.... hedeflerimin ulaşılmazlığını fark etmem için beni kışkırtmaya çalışıyorsunuz... Belki de bana başka bir yol bildiğini göstermeye çalışıyorsun. ya da Tanrı bilir başka ne.

Ama dürüst olmak gerekirse, bunun bir önemi yok. Makaleler yazacağım ve görsel editörü bir zamanlar amaçladığım gibi bitireceğim. Ve bırakın herkes için işe yaramaz bir "boşluktaki küresel at" olarak kalsın. Olsun.

Benim için bu önemli bir gelişim aşaması.

Altını çiziyorum: benim için bu, gelişimin önemli bir aşamasıdır.

Bu nedenle editör "öylece" kalacaktır. Benim, sizin ya da bir başkasının muhakemesi, düşüncesi, argümanları, karşı argümanları, muhakemesi, değerlendirmeleri, ruh hali, iç çekmesi, başını sallaması vs. ne olursa olsun.

Görsel editör SADECE İYİ (bitmiş).

"Neden", "ne için", "nasıl" ve "niçin" uygulanmalı...ya da uygulanmamalı..... birakin herkes kendi̇si̇ karar versi̇n... KENDİSİ İÇİN.

Barış. :)

Başka bir şey kastetmiyorum, bu sadece bir fikir; yapmak istediklerinizi hayata geçirmenizde sizi destekliyorum.

----------------------------



<Moderatör tarafından düzenlendi> Rusça: Başka bir şey kastetmiyorum, bu sadece bir fikir; yapmak istediklerinizi hayata geçirmenizde sizi destekliyorum.

 

Peter, bence yaptığın şey harika! Lütfen çabalarınızda beni cesaretlendirdiğinizi bilin.
İnsanlar için "mükemmelliğin iyinin düşmanı olmasına asla izin vermeyin" demek çok kolaydır, ancak
projenizin nasıl çalışması gerektiğine dair bir vizyona sahip olduğunuzda bunu söylemek yapmaktan daha kolaydır.
Görsel düzenleyicinizin nasıl çalışacağına dair gelecek makaleleri vb. dört gözle bekliyorum.
Ve lütfen iyi bir görsel düzenleyicinin asla "boşlukta işe yaramaz küresel bir at" olmayacağını bilin.

Saygılarımla

Doug

 
hini #:

Başka bir şey kastetmiyorum, bu sadece bir fikir; yapmak istediklerinizi hayata geçirmenizde sizi destekliyorum.

----------------------------



<Moderatör tarafından düzenlendi> Rusça: Başka bir şey kastetmiyorum, bu sadece bir fikir; yapmak istediklerinizi hayata geçirmenizde sizi destekliyorum.

Bu başlığın yürütülmesinde bana çok yardımcı olan sürekli desteğiniz ve katılımınız için teşekkür ederim.
 
Douglas Prager projenizin nasıl çalışması gerektiğine dair bir vizyonunuz olduğunda bunu söylemek yapmaktan daha kolay.
Daha fazla makale okumayı dört gözle bekliyorum.... görsel editörünüzün nasıl çalışacağı hakkında.
Ve lütfen iyi bir görsel editörün asla "boşluktaki işe yaramaz küresel bir at" olmayacağını bilin.

Saygılar,

Doug

İlham verici sözleriniz için çok teşekkür ederim Douglas. Biliyorum ki insanlar yenilgiye uğratan eleştirilerin, değersizleştiren özlemlerin ve aşağılayıcı fikirlerin katmanlarından inançla sıyrıldıklarında, birlikte en yüksek zirvelere ulaşırlar!