October 25, 2012

Kabül etmem gerekir ki kutu aldatıcı bir ifade ve tahmin ettiğin gibi dörtgen daha doğru. Ancak kapaklı olan ve açılan bir kutu yok. Özetle bir yanlış anlaşılma da yok...:)

Aslında yukarıdaki hareketli resim (animation) durumu daha iyi özetliyor. Bir resim bin söze bedelmiş ya, yine de bir kaç söz ile ifade edeyim. Dikkat ederseniz, ilk bir kaç tıklamada kutularda bir değişiklik olmuyor. Değişikliğin tek olduğu yer var o da ekranın diğer yarısı. Sahne yüksekliğini bilinçli olarak iki kat yaptım, böylece karşılaştırılan (eşleştirilen) bölgeyi görebiliyoruz.

Biri dışında, sonraki tıklamalarda ekranın diğer yarısına yansıtılan görüntünün tek dörtgen oluştuğu dikkatinizi çekti mi?

İşte, doğru sırayla tıklanırsa eşleştirilen bölge içeriği kutu ile aynı oluyor ve biz kutuyu siliyoruz...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 25, 2012

Unutmadan amaç şu:

Sahneye farklı boyutlarda resimleri almak ve bunları tutup başka yere çekmek, gerektiğinde çift tıklama ile silmek. İşte bunu yapabilmek için önce ekrandaki nesneleri tek tıklama ile ayırt etmeliydim. O yüzden en basiti olan sahneden silinme olayını seçtim. Şimdi sırada nesnenin koordinatları (X = mX ve Y = mY) mouse ile eşitlenecek.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 25, 2012

En baştan sormam gerekeni şimdi sorayım: Amaç ne? :D Beni en çok yanıltan ilk mesajdaki "Tıpkı Mahjong oyunu gibi üstteki taşlar daha öncelikli" sözü oldu. O yüzden "üstünde başka dörtgen olmayan serbestçe kaldırılabilir" olayına takıldım.

Hatta o yüzden de senin "kutu" sözünü bile hep "dörtgen" diye algıladım. Ama sen kapaklı kutulardan bahsediyormuşsun. Öyle mi?

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 28, 2012

Düşünüyorum da bu yöntem içeriği değişebilen pencereler için uygun değil. Örneğin bir vidyo veya IMKB'nin gerçek zamanlı çizitlerinde işler karışabilir. Gerçi tıklama anından hemen önce nesne bir şekilde güncellenebilir ama bu yöntem kısır, basit...

Başka şeyler düşünüyorum ama çözebilecek kadar akıllı olduğumu söyleyemem...:)

Bir de şu var:
İstediğimiz pencereye (kutu, dörtgen vb.) tıkladığımızda bu öne gelebilir!

Neden olmasın! Bu bizim işletim sistemlerinde alışık olduğumu bir şey değil mi? Üstelik bu çok basit çünkü en üstteki ile seçilen seviyeyi yer değiştirebiliriz. Ama bu tek başına iki değerin swap() olması gibi olmamalı. Yani en üste getirilen pencerenin yerine gitmemeli, seçilenin hemen altında olmalı. Eşleşme tabloları ile çözmeye çalışalım...

import std.stdio;

void swap(ref string a, ref string b) {
   string t = a;
   a = b; b = t;
}

void main() {
   string[int] pencereler = [ 5: "uyarı",
                              4: "belgeler",
                              3: "tarayıcı",
                              2: "notlar",
                              1: "takvim",
                              0: "oynatıcı" ];
   pencereler.writeln;

   int üstteki = pencereler.length - 1;
   int seçilen = uniform(0, üstteki);

   foreach(n; seçilen..üstteki) {
       pencereler[n].swap(pencereler[n+1]);
   }
   pencereler.writeln;
}

Sanırım buna kaydırmalı yer değiştirme diyebiliriz. Sizce bu iyi bir çözüm olabilir mi?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 28, 2012

Alıntı (Salih Dinçer):

>

içeriği değişebilen pencereler için uygun değil

Aynı sorun benim bildiğim bütün görsel arayüzlerde de var. Tam bir düğmeye tıklamak üzereyken ilgisiz başka bir pencere açılabiliyor ve farkında olmadan onun düğmelerinden birisine tıklanabiliyor.

Alıntı:

>
> void swap(ref string a, ref string b) {
> ```


std.algorithm.swap da var:

 http://dlang.org/phobos/std_algorithm.html#swap

Alıntı:
> iyi bir çözüm olabilir mi?

Bana mantıklı geldi.

Ali

-- 
[ Bu gönderi, <http://ddili.org/forum>'dan dönüştürülmüştür. ]
1 2 3
Next ›   Last »