Forum: Diğer Konular RSS
GtkD Modül özellikleri
Sayfa:  önceki  1  2  3  4  5  6  7  sonraki 
cos00kun #46
Üye Kas 2014 tarihinden beri · 223 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 13149
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 ;

[Resim: 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
[Resim: 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
E=mc^2
erdem (Moderatör) #47
Üye Tem 2009 tarihinden beri · 1050 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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ç…

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

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.
cos00kun #48
Üye Kas 2014 tarihinden beri · 223 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
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..  ;-)
E=mc^2
erdem (Moderatör) #49
Üye Tem 2009 tarihinden beri · 1050 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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.

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/layo…

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)
cos00kun #50
Üye Kas 2014 tarihinden beri · 223 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
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ı..
E=mc^2
cos00kun #51
Üye Kas 2014 tarihinden beri · 223 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Erdem hocam selamlar.. elimde şöyle bir Glade dosyası var
<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <requires lib="gtk+" version="2.24"/>
  <!-- interface-naming-policy project-wide -->
  <object class="GtkWindow" id="window1">
    <property name="can_focus">False</property>
    <child>
      <object class="GtkLayout" id="layout1">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <child>
          <object class="GtkButton" id="button1">
            <property name="label" translatable="yes">button</property>
            <property name="width_request">57</property>
            <property name="height_request">20</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
          </object>
          <packing>
            <property name="x">20</property>
            <property name="y">20</property>
          </packing>
        </child>
        <child>
          <object class="GtkEntry" id="entry1">
            <property name="width_request">365</property>
            <property name="height_request">10</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="invisible_char">●</property>
            <property name="primary_icon_activatable">False</property>
            <property name="secondary_icon_activatable">False</property>
            <property name="primary_icon_sensitive">True</property>
            <property name="secondary_icon_sensitive">True</property>
          </object>
          <packing>
            <property name="x">20</property>
            <property name="y">60</property>
          </packing>
        </child>
        <child>
          <object class="GtkVBox" id="vbox1">
            <property name="width_request">748</property>
            <property name="height_request">144</property>
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <child>
              <object class="GtkSpinButton" id="spinbutton1">
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="invisible_char">●</property>
                <property name="primary_icon_activatable">False</property>
                <property name="secondary_icon_activatable">False</property>
                <property name="primary_icon_sensitive">True</property>
                <property name="secondary_icon_sensitive">True</property>
              </object>
              <packing>
                <property name="expand">True</property>
                <property name="fill">True</property>
                <property name="position">0</property>
              </packing>
            </child>
            <child>
              <object class="GtkRadioButton" id="radiobutton1">
                <property name="label" translatable="yes">radiobutton</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="receives_default">False</property>
                <property name="active">True</property>
                <property name="draw_indicator">True</property>
              </object>
              <packing>
                <property name="expand">True</property>
                <property name="fill">True</property>
                <property name="position">1</property>
              </packing>
            </child>
            <child>
              <object class="GtkToggleButton" id="togglebutton1">
                <property name="label" translatable="yes">togglebutton</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="receives_default">True</property>
              </object>
              <packing>
                <property name="expand">True</property>
                <property name="fill">True</property>
                <property name="position">2</property>
              </packing>
            </child>
          </object>
          <packing>
            <property name="x">20</property>
            <property name="y">100</property>
          </packing>
        </child>
      </object>
    </child>
  </object>
</interface>
ver görüntüsüde şu;
https://hizliresim.com/9DkNDo
burdada görüldüğü üzere Glade ile Window a 1 adet buton ardından altına 1 adet Giriş kutusu ve onun altına da bir adet Vbox koydum.. Vbox'ın içinede birkaç widget ekledim düşey olarak.. Şimdi Sorum şu; Ben Glade kullanmadanda bu işlemi GtkD ile yapmaktayım ancak Glade kullanmadan bahsettiğim Vbox u Gladededki gibi default değerler vererek boyutlandıramıyorum. Ama aynı şeyi Glade ile yapabiliyorum ??
Birazdaha açarsak; Glade bu örnekte Vbox kutusunu boyutlandırma şansı verirken ben Gtkd yi herhangi bir IDE kullanarak bunu lade kullanmadan yaptığımda boyutlandırma özelliğini ekleyemiyorum.. zaten gtkd.org adresinde ki referanslardada böyle bir tanım yok ama Glade resimdede görüldüğü üzere bunu ayarlayabiliyor :-(
teşekkürler
E=mc^2
Bu mesaj cos00kun tarafından değiştirildi; zaman: 2017-12-25, 19:44.
erdem (Moderatör) #52
Üye Tem 2009 tarihinden beri · 1050 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Bu tam olarak senin yapmak istediğin işi yapıyor sanırım.
import gtk.Ana;
import gtk.AnaPencere;
import gdk.Olay;
import gtk.Paned;
import gtk.Label;
 
import std.stdio;
 
class Pencere: AnaPencere
{
    Paned kab;
 
    this()
    {
        super("Pencereyi bölme");
        this.boyAyarla(200, 100);
 
        kab = new Paned(YATAY);
        ekle(kab);
 
        kab.add1(new Label("sol"));
        kab.add2(new Label("sağ"));
 
        tümünüGöster();
    }
}
 
void main(string[] seçenekler)
{
    Ana.ilklendir(seçenekler);
    Pencere pencere = new Pencere();
    Ana.çalıştır();
}
cos00kun #53
Üye Kas 2014 tarihinden beri · 223 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Evet Paned modülünü çözdüydüm ama örnek iyi oldu. Yukarda bahsettiğim konu daha farklı birşeydi. Belki de çok iyi ifade edemedim bilemiyorum ama istediğim bir box u Gladede istediğim konumda istediğim çerçeve boyutlarda tanımlandırabilirken ayn şeyi gidipte herhangi bir IDE kullanarak GtkD  kütüphanesindeki modüllerle yapamamak! çünkü burada yani GtkD kütüphanesinin Box modülü özelliklerinde böyle bir ayar yok  :-) .. Glade ile yaptığım dosyayı IDE ye alıp kullandığımda ise bu dediğim oluyor.. Glade bu özelliği nasıl veriyor onu çözemedim bi türlü.. yukarda verdiğim resimde Layout ile tanımladığım bir alanda bir Box tanımlayıp bu box ın çerçeve boyutlarıyla oynayabilşyor ve değiştirebiliyoruz oysa  :-)   benim için sinir bi durum.. Belki gtk3 kullanıyordur ve bizim gtk ilintimizin versiyonu düşüktür diyeceğim ama bilemedim...
E=mc^2
cos00kun #54
Üye Kas 2014 tarihinden beri · 223 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Sanırım bana "ee artık bir hesap makinası bekliyoruz senden" demiştiniz  :blush:  ufaktan başladım şimdilik kod bu .. biliyorum çok hızlı yazıldığından düzensiz falan ama yavaş yavaş topralayacağım zaten bunlar ilk adımlar .. Hesap makinam çalışmıyor bile henüz :-) mesela düğme nesnesini dizi şekline getireceğim vesaire.. vesaire..
import gtk.Main;
import gtk.MainWindow;
import gtk.Layout;
import gtk.Label;
import gtk.Entry;
import gtk.Button;
import std.stdio;
import std.conv;
 
class Pencere : MainWindow
{
    Layout düzen;
    Entry giriş1,giriş2,giriş3;
    Label etiket1;
    Button düğme0,düğme1,düğme2,düğme3,düğme4,düğme5,düğme6,düğme7,düğme8,düğme9,düğme10
                                                                                   ,düğme11,düğme12,düğme13,düğme14,düğme15;
 
    this()
    {
        super("İlkel Hesap Makinası..");
 
        düzen = new Layout(null, null);
        etiket1 = new Label("İKİ SAYIYI TOPLUYORUZ..");
        giriş1 = new Entry();
        düğme0 = new Button("0");
        düğme1 = new Button("1");
        düğme2 = new Button("2");
        düğme3 = new Button("3");
        düğme4 = new Button("4");
        düğme5 = new Button("5");
        düğme6 = new Button("6");
        düğme7 = new Button("7");
        düğme8 = new Button("8");
        düğme9 = new Button("9");
        düğme10 = new Button("+");
        düğme11 = new Button("-");
        düğme12 = new Button("*");
        düğme13 = new Button("/");
        düğme14 = new Button(".");
        düğme15 = new Button("=");
 
        setSizeRequest(250, 275);
        move(100, 100);
        giriş1.setAlignment(1);
        düzen.setSizeRequest(50, 50);
        düzen.put(etiket1, 5, 5);
        düzen.put(giriş1, 10, 25);
 
        düzen.put(düğme7, 10, 75);
        düzen.put(düğme8, 70, 75);
        düzen.put(düğme9, 130, 75);
        düzen.put(düğme4, 10, 120);
        düzen.put(düğme5, 70, 120);
        düzen.put(düğme6, 130, 120);
        düzen.put(düğme1, 10, 165);
        düzen.put(düğme2, 70, 165);
        düzen.put(düğme3, 130, 165);
        düzen.put(düğme0, 10, 210);
        düzen.put(düğme14, 70, 210);
        düzen.put(düğme15, 130, 210);
        düzen.put(düğme10, 190, 75);
        düzen.put(düğme11, 190, 120);
        düzen.put(düğme12, 190, 165);
        düzen.put(düğme13, 190, 210);
        add(düzen);  
        showAll();
 
        // düğme1.addOnClicked(&topla);
    }
 
 
    void topla(Button düğme1)
    {
        writeln("Tıklama oldu"); // fonksiyonun çalışıp çalışmadığının konrolünü sağlamak için vardır.
        etiket1.setLabel("Hesap Makinası v.1.0");
        try {
            int ilk = to!int(giriş1.getText());
            int ikinci = to!int(giriş2.getText());
            auto sonuç = ilk + ikinci;
            giriş3.setText(to!string(sonuç));
 
        } catch (ConvException hata) {
            // Hatayı bildiriyoruz 
            etiket1.setLabel("HATA: İki tamsayı girmelisiniz");
            writeln("Uyarı!! Hata fırlatıldı!!");
 
        } catch (Exception hata) {
            // Başka çeşit bir hata oluştu
            import std.string : format;
            giriş3.setText(format("HATA: %s", hata.msg));
        }
    }
}
 
void main(string[] args)
{
    Main.init(args);
    Pencere pencere= new Pencere();
    Main.run();
}

Şimdi sorum şu burda ben herhangi bir düğmeye tıklandığında bir ayrı sınıf yada fonksiyona bu tıklanan düğme numarasını okumak istiyorum .. Burda Event modülümü devreye girer ? Event modülü nasıl kullanılır ? farkındaysanız hesap makinasında herhangi bir düğme tıklandığında birşey yapmıyor.. hangi düğmenin tıklandığını birşekilde öğrenebilirsem o zaman çeşitli irdelemelerle değerleri alıp işlem yaptırabilirim..
E=mc^2
erdem (Moderatör) #55
Üye Tem 2009 tarihinden beri · 1050 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Ufak bir örnek yazıyorum
import gtk.Ana;
import gtk.AnaPencere;
import gtk.Box;
import gtk.Düğme;
import gdk.Olay;
 
import std.stdio;
import std.format;
 
 
class Pencere: AnaPencere
{
    Box yataykutu;
    Düğme düğme;
 
    this()
    {
        super("Düğme örneği");
 
        yataykutu = new Box(YATAY, 6);
        this.ekle(yataykutu);
 
        for (int i = 0; i < 10; ++i)
        {
            auto isim = format("düğme%s", i);
            düğme = new Düğme(isim);
            düğme.tıklandığında(&düğmeyeTıklandı);
            yataykutu.atSepete(düğme, true, true, 0);
        }
 
        tümünüGöster();
    }
 
    void düğmeyeTıklandı(Düğme düğme)
    {
        writeln(düğme.getLabel());
 
    }
}
 
void main(string[] seçenekler)
{
    Ana.ilklendir(seçenekler);
    Pencere pencere = new Pencere();
    Ana.çalıştır();
}
acehreli (Moderatör) #56
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4592 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #54
Gözüme ilk çarpan, düğme dizisi ;) oldu. Düğmelerin isimlerini ve konumlarını bir araya getiren şöyle bir yapı ile başlayabilirsin:
struct DüğmeBilgisi {
    string isim;
    int x;
    int y;
}
// ...
DüğmeBilgisi[] düğmeBilgileri = [
    { "0", 10, 210 },
    { "1", 10, 165 },
    // ...
];
// (Belki konumları da otomatik olarak hesaplayabilirsin.) 
Ondan sonra her birisini bir düğmeye çevirirsin:
Button[] düğmeler;
// ...
foreach (d; düğmeBilgileri) {
    düğmeler ~= new Button(d.isim)
    düzen.put(düğmeler[$-1], d.x, d.y);
}
Ali
cos00kun #57
Üye Kas 2014 tarihinden beri · 223 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Aynen öyle Ali hocam zaten yazdığınız koda şöyle bir baktığınızda herşey açıkça görülüyor. Bende baktığımda ilk olarak bir dizi tanımlamam gerektiğini ve ardından bunları for döngüleri ile işlemeyi düşünmüştüm  :-)  Siz hem neredeyse kodu yazdınız hemde beni Foreach döngüsüne yönlendirdiniz.. Bu akşam yada yarın bunları toparlayacağım.. Hatta diyorum butonlar için ayrı bir sınıf tasarlarsam kodlar arasında boğulmamış olurum sanırım onu da düşünmekteyim..
Teşekkürler.. Erdem hocam sizdende Event olayı kullanımı yada işte herhangi bir düğmeye tıklandığında bunu algılyıp işlem yaptırmanın nasıl yapıldığını öğrenirsem gerisi bende (İnşAllah) :-)
E=mc^2
Bu mesaj cos00kun tarafından değiştirildi; zaman: 2017-12-26, 10:28.
acehreli (Moderatör) #58
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4592 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
cos00kun:
hemde beni Foreach döngüsüne yönlendirdiniz

Zamanla çoğu kodun döngüsüz yazılabildiğini göreceksin. Bazı programcılar açıkça döngü kullanımının zararlı olduğunu savunuyorlar. Örneğin, gösterdiğim kod aralıklardan ve UFCS'ten yararlanarak şöyle de yazılabilir (derlemeden yazıyorum):
import std.algorithm : map, each;
// Not: Button'dan Düğme diye bir tür türetmiş olduğunu da varsayarak:
Düğme[] düğmeler = düğmeBilgileri
                   .map!(bilgi => new Düğme(bilgi.isim, bilgi.x, bilgi.y))
                   .array;
düğmeler.each!(d => düzen.put(d, d.x, d.y));
Tabii bunlara gerek yok; yalnızca başka bir yöntem olarak gösterdim.

Ali
cos00kun #59
Üye Kas 2014 tarihinden beri · 223 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
acehreli:
Tabii bunlara gerek yok; yalnızca başka bir yöntem olarak gösterdim.
Aman Ali hocam gerekte olmasın şimdilik çünkü kafam allak bullak olur  :-)
Sınıflar ve birkaç konuyu daha özümseyip bitirdikten sonra (yaklaşık 1 ay sonra diyelim)  Biraz daha uzmanlık isteyen konulara bakacağım zira ilk hedefim daha öncede yazdığım üzere dosyadan verileri alıp herhangi bir GUI de (Şimdilik GtkD gözüküyor) ekrana yazdırmak ve burdan düzenlemeler yaparak kayıt yapmak.. Ardından bunu birçok dosyadan veriler okuyup programımı büyütmek..
Umarım ben D ile kendimi geliştirene kadar D dili ve kütüphaneleri çöp olup gitmez  :-D
E=mc^2
erdem (Moderatör) #60
Üye Tem 2009 tarihinden beri · 1050 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Gösterdiğim kısmın yeterli olabileceğini tahmin ediyorum.

düğmeyeTıklandı() işlevi yerine hesapla() isminde bir işlev olabilir. Bu işlevle basılan tuşun bir rakam mı işleç mi olduğunu tespit edebiliriz. Örneğin kullanıcı 23 girdi.

Rakamsal olduğu için bu değerleri sırayla ekranı temsil eden giriş kutusuna yazdırabiliriz. Sonra + girdi. İşte bu anda giriş kutusundaki değeri bir çift uçlu kuyruğa ekleriz. İşlecimizi de başka bir kuyruğa ekleriz. = tuşuna basıldığı zaman da ilkönce sayılardan başlayarak sırayla bir sayı bir işleç şeklinde hesaplamayı yaptırabiliriz.

[Resim: http://www.programlama.tk/resim/hesapmakinesi.png]

Ali hocanın gösterdikleri şık çözümler. Bir yere notunu almanı tavsiye ederim. Her yerde bulamazsın  ;-)
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Sayfa:  önceki  1  2  3  4  5  6  7  sonraki 
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2018-01-21, 18:34:09 (UTC -08:00)