December 20, 2017

'format' çıktıyı istediğimiz biçimde göstermeyi sağlıyor.Örneğin bu örnekte %s gördüğü yere hata mesajını ekliyor.

Bundan başka yanlış hatırlamıyorsam 'formattedRead' ve 'formattedWrite' var. Bu da özellikle dosya okuma, yazma işlemlerinde oldukça kolaylık sağlıyor.

http://ddili.org/ders/d/dizgiler.html

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

December 20, 2017

evet bunlar var ancak benim anlamadığım şu yazım dizimi ne işe yarıyor;
' import std.string : format;'
yani burda' format' tan önceki iki nokta üstüste '":"' kafamı karıştırdı.. normalde sınıftan türemek için kullanıldığından kafam karıştı

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

December 20, 2017

Alıntı (cos00kun):

>

evet bunlar var ancak benim anlamadığım şu yazım dizimi ne işe yarıyor;
' import std.string : format;'
yani burda' format' tan önceki iki nokta üstüste '":"' kafamı karıştırdı.. normalde sınıftan türemek için kullanıldığından kafam karıştı

import std.stdio:writeln;
import std.format:format;
import std.string:format;
//import std.format;
//import std.string;

void main(string[] args)
{
    auto pi = format!"%s sayısı %s'tür"("Pi", 3.14);
    writeln(pi);
    auto hatailetisi = "Bir hata oluştu";
    writeln(format("Hata : %s", hatailetisi));
}

O ': 'olanağı bir kaynak kütük içinde sadece bir işlevi kullanmak istediğimizi belirtiyor. İstersen' :' kullanmadan da koda ekleyebilirsin.

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

December 20, 2017

Hay Allahım yaa nasıl unuturum bunu doğru ya :nuts:
şimdi hatırladım sınıfın içinden sadece o işlevi programa dahil ediyordu .. Kusura bakmayın

peki o halde sınıfın tamamını dahil edeceğimize, sınıf içerisinden az kullanılacak işlevler için bu yöntemi kullanmak daha az maliyetli oluyor sanırım.. Öyle ya yoksa sadece format işlevini kullanacağımız zaman neden tüm string sınıfını programa alalım !.

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

December 20, 2017

Alıntı (cos00kun):

>

sadece format işlevini kullanacağımız zaman neden tüm string sınıfını programa alalım !.

Düzeltme: Sınıf değil, modül. :) Bu yöntem bir de isim kirlenmesini önlüyor; modüldeki bütün isimleri bu kapsama dahil etmemiş oluyoruz.

Ali

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

December 21, 2017

Sınıf mı yazmış Modül yerine birisi ? anlamadım kim o ? :-D
Yahu arkadaş nedir bu GtkD kütüphanesinden çektiğim eziyet hepsini tırmalaya tırmalaya oda burda yazarsam öğrenebiliyorum :) keşke biraz yaygın olaydı da daha çok bilgi alabilseydik ama herneyse.. Şimdi ListBox, Table modüllerini öğrenmeye çalışıyorum bunlardan sonra artık hedefimi yazmaya başlayacağım (bi ara topicte paylaştığım bir dosyadan verileri okutup GtkD GUI ile görsel olarak çalışmak eitlemeke v.s.. ) öncelikle amacım şu aşağıdaki resimdeki gibi bir program tanımlamak ;

https://i.hizliresim.com/rJlLpN.png

buradaki gibi bir GUI tasarlayacağım.. Öncelikle pencereye baktığımızda bir Menu ve hemen altında iconları olan MenuItem daha sonra aşağıda kısım 2 ye bölünmüş (2 adet pencere yada işte adı her neyse öyle 2 tane görsel birleşen var).. Burda bu bileşen sağa sola uzatılabiliyor mouse ile. Sağ taraftaki kısım dosyadan verileri okuyup sıralıyor ve Eğer buraya tıklarsanız yeni bir pencere içine yine başka bir dosyadan verileri okuyor. Elbette sağ tarafa okunan bilgiler string değil ordaki bilgiler bir işlev ile stringe dönüştürülecek ki burası basit benim için örneğin dosyadan int türünden 2 byte bir bilgi aldığında benim o dosyayı tanımam sebebiyle diyeceğiimki eğer gelen değer 23 ise "Air" yaz eğer 47 ise "LAND" yaz gibi ama dediğim gibi iş buraya kalsın burası basit :-)

şimdi sorularım şu;

  • Sağ taraftaki bileşen ismi nedir ? ListBox yada Table Modülü/Sınıfı mı kullanılmış ?
  • Sol taraftaki kısımdahangi bileşen/widget kullanılmış ?
  • GtkD kütüphanesinde yukarıdaki örnektede göründüğü gibi 2 adet bölümü nasıl sol ve sağ hareket ettirebilirim ? yani aşağıdaki resimdeki kırmızı okların değdiği düşey hat sağa sola hareket ettirilebiliyor
    https://i.hizliresim.com/nJ8YG1.png

sonra devamı gelecek ama şimdilik bunlar önemli.. artık yavaş yavaş gerçek programa başlıyorum bu konularda da yol aldımmıydı hem D dilini kullanarak hemde GUI ile birlikte sanırım 6 ay a falan ciddi güzel bir program çıkmış olacak düşüncesindeyim ..
saygılar

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

December 21, 2017

Alıntı (cos00kun):

>
  • Sağ taraftaki bileşen ismi nedir ? ListBox yada Table Modülü/Sınıfı mı kullanılmış ?
  • Sol taraftaki kısımdahangi bileşen/widget kullanılmış ?

Sanırım her iki tarafta ağaç veri yapısı ile yapılabilir. Ağacın hücrelerine resim eklemek için şu örneğe bakabilrsin: (resim de gerekli)

https://github.com/erdemoncel/gtkd/blob/master/kaynak/ağaç7.d

Ağacta süzme işlemleri için bir sonraki örneğe bakabilirsin. Gene veriler.txt dosyasından okuma yapıyor.

Alıntı (cos00kun):

>
  • GtkD kütüphanesinde yukarıdaki örnektede göründüğü gibi 2 adet bölümü nasıl sol ve sağ hareket ettirebilirim ?

Belki başka bileşenler de olabilir ama Glade'den baktım. Taşıyıcılar(kablar) bölümünde GtkPaned isimli bir kab bu işi yapıyor.

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

December 23, 2017

Erdem hocam sanki sağ taraftaki farklı birşey gibi acaba tablo mu ? neden dedim çünkü resimde sağ bölümün en üst kısımlarını tıkladığınızda tüm datayı o basılan sutunun küçükten büyüğe göre dizilimini sağ bölümü yenileyerek yapıyor.. belki ağaç yapısındada vardır böyle sortlamalar falan ama bilemedim..

GtkD de Table modülünün parametrelerine gtkd.org dan baktığımda tam olarak çözemedim.. şöyle diyor ama tabloya birşeyler ekleyeyim deidğimde biraz sıkıntı yaşadım çözemedim..

“void attach (Widget child);
Attach a new widget creating a new row if necessary

static GType getType ();
void attach (Widget child, uint leftAttach, uint rightAttach, uint topAttach, uint bottomAttach, GtkAttachOptions xoptions, GtkAttachOptions yoptions, uint xpadding, uint ypadding);”

bu gibi konularda veri türlerinden ve açıklamalarından parametrelere ne yazmam gerektiğini deneyip çözebiliyorum artık ancak “GtkAttachOptions xoptions” burada ne yazmam gerektiğini çözemedim..

bugün çok olumsuzluk eki kullandım performansım düşük :-) kendimden daha yüksek bir performans bekliyorum.. ;-)

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

December 23, 2017

Alıntı (cos00kun):

>

Erdem hocam sanki sağ taraftaki farklı birşey gibi acaba tablo mu ? neden dedim çünkü resimde sağ bölümün en üst kısımlarını tıkladığınızda tüm datayı o basılan sutunun küçükten büyüğe göre dizilimini sağ bölümü yenileyerek yapıyor..

Evet bu dediğini tam olarak ağaç veri yapısı yapıyor. Örneğin bir sütuna tıkladığımızda bu değerleri küçükten büyüğe ya da büyükten küçüğe sıralayabiliyoruz. Bunun için bir sıralama işlevi yazmamız gerekiyor.

Alıntı (cos00kun):

>

GtkD de Table modülünün parametrelerine gtkd.org dan baktığımda tam olarak çözemedim.. şöyle diyor ama tabloya birşeyler ekleyeyim deidğimde biraz sıkıntı yaşadım çözemedim..

“void attach (Widget child);
Attach a new widget creating a new row if necessary

static GType getType ();
void attach (Widget child, uint leftAttach, uint rightAttach, uint topAttach, uint bottomAttach, GtkAttachOptions xoptions, GtkAttachOptions yoptions, uint xpadding, uint ypadding);”

http://python-gtk-3-tutorial.readthedocs.io/en/latest/layout-table.html

Gtk.Table GTK 3.4 sürümünden itibaren emekliye ayrılmış. Yerine kalbur olarak çevirdiğimiz Gtk.Grid kulanılması tavsiye ediliyor. Buradaki attach metodu da kalbur'un iliştir metodu gibi kullanılıyor sanırım. attach kelimesini de iliştir olarak çevirmiştim.

    table.attach(button1, 0, 1, 0, 1)

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

December 24, 2017

Alıntı (erdem):

>

Evet bu dediğini tam olarak ağaç veri yapısı yapıyor. Örneğin bir sütuna tıkladığımızda bu değerleri küçükten büyüğe ya da büyükten küçüğe sıralayabiliyoruz. Bunun için bir sıralama işlevi yazmamız gerekiyor.

Anladım teşekkürler sadece şu hatırlatmayı yapayım.. sutunları dizerken mouse ile tıkladığınız sutunu dizmiyor sadece.. tüm tabloyu güncellemiş oluyor .. Yani ona bağlı olan tüm satırlarda bu sutun dizilimine göre dizilmiş oluyorlar. Eğer ağaç yapısıda bunu destekliyosa tamda aradığımızı bulmuşuz demektir.. Glade ile kontrol ederek bu söylediklerinizi deneyerekte tecrübe edicem akşama :-)
Table modülünün çöp olduğuna sevindim .. Grid modülüne çalışmıştım kullanabiliyorum. Döngüler içine alınarak otomatik tablolar yapılabilir üstelik exceldeki gibi sutun ve satırları birleştirmeyide daha doğrusu tanımlarken dilediğimiz boyutta satır ve sutun alanı çevirebildiğimizden dolayıda kullanışlı..

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