Artık nesnelerin grafik üzerindeki yerleşimini "dikey" olarak kontrol edemiyoruz

 

Kaynak metinleri biçimlendirme sorununun geçmişteki, neredeyse skandallı tartışması, geliştiricilerin programcının programları istediği / sevdiği (ve onlara göründüğü gibi değil) yazma "hakkını" tanıması ve söz vermesiyle sona erdi. kaynak metinlerin biçimlendirme ayarlarını tamamlayın.

Şimdi benzer bir durumla karşılaştım ve yine kendileri için MQL5 geliştirenlerin fikrini almak istiyorum.

Buradan başlayın. Kısaca hikaye şu şekildedir: MQL5'teki nesneler oluşturuldukları sıraya göre çizelgeye yerleştirilir. Oluşturulan ilk nesne en alttaki nesnedir. Kodu yanlışlıkla silerseniz veya kullanıcı hallederse, onu hiçbir şekilde yerine koyamazsınız (kalan nesneleri kendiniz silmek ve doğru sırayla yeniden oluşturmak dışında). En belirgin örnek, üstüne metinler, giriş alanları ve düğmeler yerleştirmek için bir altlık oluşturduğunuz zamandır. Şimdi onu siler ve oluşturursanız, yukarıda görmek istediğiniz her şeyi en yenisi olarak kapsayacaktır.

Bir teklifle hizmet masasıyla iletişime geçerek

необходимо предусмотреть механизмы произвольной сортировки объектов "по вертикали". Либо наличием свойства Zorder у каждого объекта, либо функциями BringToFront, SendToBack, InFrontOf, BehindOf. Ну или хотябы сделайте так же как было в 4-ке - по имени объекта, т.к. к такому поведению объектов все уже привыкли и ожидают что в 5-ке будет также.

hemen teslim aldım...

Anton Timofeev 2010.05.27 12:27
Geçerli çizim sırası kuralı, oluşturmayı kontrol etmek için basit ve yeterlidir. Bazı durumlarda ada göre sıralama, çizim sırası üzerinde daha esnek kontrol sağlar - forumda açıklanan belirli bir görev için basit bir çözüm (küçük kutup), ancak tüm kullanıcıları bir nesne eklerken adı dikkatlice düşünmeye zorlar (neden değil). MQL) (büyük eksi).
MT5'te nesnelerin üst üste bindirilmesi sırasındaki çizim sırası pratikte zaten kullanılıyor (arka plan, düğmeler, vb.). Sorunlardan şikayet etmediler - her şey algoritmik olarak oldukça basit bir şekilde çözüldü.

Pekala, onlar için bunun, eğer söyleyebilirsem, çözümün "oluşturmayı kontrol etmek için basit ve yeterli" olduğundan kim şüphe edebilir ki?! :))))

benim yorumuma:

ForexAraçları:

diğerlerinin şikayet etmemiş olması sorun olmadığı anlamına gelmez, belki de gerçekten kimse arayüzle uğraşmadığındandır ;)

cevapladı


arandı:

https://www.mql5.com/en/articles/64

https://www.mql5.com/en/articles/65

https://www.mql5.com/ru/code/68

Dahili testlerde kendimiz epey uğraştık, hem arayüzler hem de oyunlar yazdık. Çekiliş sıralamasında böyle bir sorun yok, sadece sıraya göre yaklaşımınızı değiştirin.

iyi bir argüman: gelecekteki ticaret arayüzleri için çözümler Tetris ve Miner oyunlarında hata ayıklandı :)))

ve son olarak onların kararı:

Yukarıda, neden değişiklik yapmamamızın nedenini yeterince ayrıntılı olarak açıkladım. Kısaca tekrar edeceğim: belirli bir durumda kolaylık sağlamak için, diğer tüm durumlarda herkes için hayat zorlaştırılamaz.

İlk dördü en azından bir tür grafik nesnesi yerleştirme düzenine sahipken (nesne adlarına göre), ilk beş kendi kendini karıştıran bir kart destesi yaptı ve MQL5 programları yazmak için "yaklaşımımızı değiştirmemizi" teklif etti.


TOPLAM: Diğer kodlayıcılar ne düşünüyor? Nesnelerin dikey olarak yerleşimini kontrol edebilmek için bir mekanizmaya mı ihtiyacınız var? Üç seçenek önerdim:

1) eski - nesne adlarına göre

2) normal - her bir grafik nesnesine Z-order özelliğinin eklenmesiyle

3) prosedürel - BringToFront, SendToBack, InFrontOf, BehindOf işlevleri

veya geliştiricilerin tek seçeneğini kabul edin: silme durumunda, tüm (!!!!) nesnelerin gerekli sırayla tamamen yeniden çizilmesi.

Bunun hakkında kim düşünüyor?


 
2)
 
Tam olarak anlama. MT5'te, grafik nesneler, nesnenin adına göre değil, yaratılış zamanına göre derinlemesine yerleştirilir?
 
Integer >> :
Не совсем понял. В МТ5 графические объекты в глубину располагаются не по имени объекта а по времени создания?
bu kadar! işte kontrol etmek için basit bir komut dosyası
 

yyyyyyyy

Ben 2) veya en az 1)

ve prosedürel iyi bilir


benimkini de sunuyorum

hepsi basamaklı stil sayfası için!!!!!

Evet, sizin MKL5'te çok fazla "harika" var

 

2)

bu nedenle, nesnelerin sırası yaratılış zamanına göre belirlenir, o zaman bu sadece gösterim için bir eksidir.

kesin olarak - bu bir gözetimdir ve metakotalar adına sorunu görmezden gelir.

Aslında, isimlere göre sıralama durumunda, programcının en azından kendi takdirine bağlı olarak sıralama yapma fırsatı vardır.

ve yaratılış tarihi ile bu ihtimal bile ortadan kalkmıştır.

1 döndürmek gerekir veya 2 yapmak daha iyidir. Nesneye bir uygun özellik daha eklenecektir.

 

Tabii ki, Z koordinatı için, ama bunu OOP ruhu içinde anlıyorum.
Ben 2) için.

 
Ben z-düzeni/z-endeksi için
 

2) - En iyi seçim.

 

1. Elbette, belgelenmemiş özellikleri tartışabilirsiniz. Ve bu defalarca yapıldı. Ama çözüm bulmak için. Belgelenmemiş davranışı değiştirmemek.

2. Nesnelerin çizim sırasını değiştirmek için (bu tartışmadaki katılımcılardan daha fazla) çok daha fazla talep aldık. Evet, ilk beşte , nesne oluşturulduğunda basit ve doğal bir sıralama yaptık (ancak bu da belgelenmemiş). Ve şimdi ne yapıyoruz?

3. Hiçbir şey yapmayın! Mevcut sıralama ile, isme göre sıralama yaparken imkansız olan bir grup nesneyi basitçe yeniden oluşturabilirsiniz.

 

stringo писал(а) >>

Mevcut sıralama ile, isme göre sıralama yaparken imkansız olan bir grup nesneyi basitçe yeniden oluşturabilirsiniz.

Nesneyi kullanıcı tarafından fare ile tutmak tüm ahududuları kırar. Bu takvimi dikkate alıyor musunuz? Neden imkansızdı?