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

 
hini #:
Gif'i indirdim, işletim sistemimle ilgili bir sorun olup olmadığından emin değilim. Sadece bildiriyorum.
Bildirdiğiniz için teşekkürler. Bu grafiği yeniden boyutlandırma seçeneğini test etmedim. OnChartEvent() içindeki olayı kontrol edeceğim.


 
hini #:
Gif'i indirdim, işletim sistemimle ilgili bir sorun olup olmadığından emin değilim. Sadece rapor ediyorum.
Evet, nedenini buldum. Grafiği farklı şekillerde yeniden boyutlandırmak, gelen OnChartEvent() olaylarının farklı kombinasyonlarını oluşturuyor. Manuel olarak değiştirirken, OnChartChange olayı 2 kez geliyor (kontrol ettim). Grafikleri değiştirirken - bir veya iki kez. Navigatör penceresini bir kez kapatırken, ancak diğer olaylar CharEvent Custom olarak geliyor. Terminal penceresini başka bir monitöre taşırken - bir kez.

Genel olarak, grafik boyutlarını değiştirirken olay kombinasyonlarının tüm varyantlarını yakalayan koşullar yazmak gerekir.
 
Grafik boyutlarını daha önce kaydedilenlerle karşılaştırarak neden basitçe kontrol edemeyeceğinizi eklemek istiyorum.

Grafikler arasında geçiş yaparken, grafik boyutlarının ChartGetInteger() işlevleri yanlış değerler gönderiyor, bu da algoritmanın boyutların değiştirildiğini "düşünmesine" ve görev çubuğunun yerinden "atlamasına" neden oluyor. Bu sorunu aşmak için çok çalışmam gerekti. Şimdi bu olaylarda ChartGetInteger() fonksiyonlarına grafik boyutlarının hangi değerlerinin rapor edildiğini kontrol edeceğim.
 
Yani, grafikler arasında geçiş yaparken boyutlar değişmiyor, ancak ChartChange olayı geliyor, ancak ChartGetInteger() işlevi nedense HER ZAMAN 480 (genişlik) ve 167 (yükseklik) boyutlarını bildiriyor. Her zaman ve herhangi bir grafik boyutunda. (Derleme 2470. Henüz yenisini kontrol etmedim).
 
Yeni derlemede (4435) grafikler arasında geçiş yaparken ChartGetInteger() işlevi 490 genişlik, 103 yükseklik değerleri döndürüyor. Gerçek grafik boyutları 1068 genişlik ve 438 yüksekliktir.

Grafikler arasında geçiş yaparken boyutların değişmediğini unutmayın.
 
Bu koşullara dayanarak, grafik boyutlarındaki gerçek değişiklikleri hatalı olanlardan ayırt etmek için gelen olayların özelliklerini incelemeye devam edeceğim. Ve geliştiriciler işlevi düzelttiğinde, kodu basitleştireceğim. :)
 
Farklı grafik yeniden boyutlandırma olaylarını test ettim. Sorun yalnızca gerçek yeniden boyutlandırmanın gerçekleşmediği grafik değiştirme ile ilgili gibi görünüyor. Ancak ChartGetInteger() işlevi ısrarla 490'ı 103 olarak bildiriyor.

Diğer olaylarda her şey yolunda.


Bir sonraki sürümde görev çubuğu düzeltmesi.
 
Реter Konow grafik yeniden boyutlandırma olayları test edildi. Sorun yalnızca grafik değiştirildiğinde ortaya çıkıyor gibi görünüyor, bu durumda gerçek bir yeniden boyutlandırma gerçekleşmiyor. Ancak, ChartGetInteger() işlevi sürekli olarak 490 ila 103 değerini bildiriyor.

Diğer tüm olaylarda sorun yok.


Görev çubuğu sorunu bir sonraki sürümde düzeltilecektir.
Sıkı çalışmanız için teşekkürler! Çalışmalarınızı dört gözle bekliyorum.
 
hini #:
Yaptığınız iş için teşekkür ederiz! Çalışmalarınızı görmek için sabırsızlanıyorum.
Teşekkür ederim!
 

Temizledim, yeniden derledim, yeniden yükledim.

Belirli bir sıraya göre fark ettiklerimi listeleyeceğim:

1. Bir pencere açtıktan sonra görev çubuğunda hiçbir şey görünmüyor. Pencereyi simge durumuna küçülttükten sonra düğme görünüyor. Açıldıktan sonra kaybolmuyor. Eğer "Windows'taki gibi" davranış kavramı tasarlanırsa, hemen görünmesi gerekir.

2. Dinamik bir pencerede, imleç simge durumuna küçült ve büyüt düğmelerinin üzerine getirildikten sonra, imleç pencerenin içinde olduğu sürece vurgulanmış olarak kalırlar.

3. Dinamik bir pencere ile, başlık genişledikten sonra gri olur, geri döndükten sonra gri kalır ve yalnızca küçültme ve geri dönüşten sonra rengi geri yükler.

4. Genişletilmiş pencere grafikteki zaman ve fiyat ölçeklerini gizlemez.

5. "i, AT, _X2X, "MF", 5, _Y2H, "Rapor",5," komutuyla "H_TAB, "Rapor" altına yerleştirilen bir tablo sol kenar ayarını yok sayar."i, AT, _X2X, "MF", 5, _Y2Y, "MF", 20," ile aynıdır.

6. En önemlisi. Dinamik pencerenin V_BOX'a izin vermemesi tasarımımı tamamen değiştirdi. İki tablo, konumlandırma ve kaydırma kolaylığı için kendi kutuları içindeydi. Şimdi onları doğrudan "MF" üzerine çizmek zorunda olduğum için, alttaki tabloyu üstteki tablonun hemen altına konumlandıramıyorum. Bağlama "i, AT, _X2X, "MF", 5, _Y2H, "Tablo1", 5," çalışmıyor çünkü grup adı Table1 bir öğe değil. Tablonun son satırına bağlamayı başardım, ancak dinamik bir tabloda bu bir seçenek değil. Gruba değil de tabloya nasıl başvuracağımı bulamadım. Tabloya programlı olarak satır eklemek isteniyorsa, tabloya hitap etme yolu varsayılır.

7. Bir şey daha var. Dinamik pencereniz genişletilebilen ve daraltılabilen bir eş penceredir. Ben bir pencere değil, bir masaüstü istiyorum. Kurucunuzdaki gibi. Böylece

a) tüm grafiği kapsayacak şekilde hemen açılır

b) bir başlık ve çerçeveye sahip olmamak (sadece bir görev çubuğu)

c) daraltılamaz

d) öğeleri normal bir pencere gibi yerleştirmenize izin verir.

Yani, DINAMIC'i FULLSCREEN veya DESKTOP ile değiştirin. Bunun için zaten temeliniz var.