December 19, 2017

şimdi tek sorun kaldı... iki Entry kutusundaki değerleri önce int türüne dönüştürmek ve ardından bu ikisini toplayıp giriş3 girişine yazdırmak..Bu konuyuda burada çözersek sorun kalmayacaktır ..
herkesin emeğine sağlık sağolun..

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

December 19, 2017

Yürüyor merak etmeyin ;-) tek sorun kendimi başka bir gezegene düşmüş yalnız başına birşeyler öğrenmeye çalışan biri gibi hissetmem.. Burada bu dünyada yaşayan birkaç kişi özellikle Erdem ve siz bana yol gösteriyorsunuz :-) umarım birgün dahada çoğalırız. Her ne kadar D diline bir hareket gelmediği ve Windows ortamında daha çok destek verilmediği sürece pek bir ümidim olmasada
Acaba hobi olarak D ve kütüphaneler değilde kitapmı yazsam :rolleyes: :-)

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

December 19, 2017

Alıntı (cos00kun):

>

iki Entry kutusundaki değerleri önce int türüne dönüştürmek ve ardından bu ikisini toplayıp giriş3 girişine yazdırmak..Bu konuyuda burada çözersek sorun kalmayacaktır ..

Sanırım yazdığım örneği denememişsin ;-)

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

December 19, 2017

her örneğini deniyorum Erdem hocam hiç şüphen olmasın :-)
ben burda son mesajları yazarken nasıl oldu anlamadım ama son yazdığın mesajı ancak şimdi görebildim ve bunun için ayrıca çok teşekkür ederim..

şimdi benim yazdığım kod şu oldu ve iki girişe yazılan yazıları birbirine ekliyor(toplamıyor) bundan sonraki amacım text olarak yazılan rakamları topla düğmesine basıldığında toplayıp giriş3 girişine yazdırmak.. Bunuda sabah deneyeceğim yazmış olduğunuz kod yardımıyla bunu kolayca halledebileceğimi düşünüyorum..

import gtk.Main;
import gtk.MainWindow;
import gtk.Layout;
import gtk.Label;
import gtk.Entry;
import gtk.Button;
import std.stdio;

class Pencere : MainWindow
{
	Layout düzen;
	Entry giriş1,giriş2,giriş3;
	Label etiket1;
	Button düğme1;

	this()
	{
		super("Görsel Denemeleri..");

		 düzen = new Layout(null, null);
		 etiket1 = new Label("İKİ SAYIYI TOPLUYORUZ..");
		 giriş1 = new Entry();
		 giriş2 = new Entry();
		 giriş3 = new Entry();
		 düğme1 = new Button("TOPLA!");

		setSizeRequest(500, 300);
		move(200, 200);
		düzen.setSizeRequest(95, 85);

		düzen.put(etiket1, 5, 5);
		düzen.put(giriş1,200,50);
		düzen.put(giriş2,200,80);
		düzen.put(giriş3,200,150);
		düzen.put(düğme1,55,150);
		add(düzen);
		showAll();

		düğme1.addOnClicked(&topla);
	}

	void topla(Button düğme1)
	{
		writeln("toplama tıklandı");
		giriş3.setText(giriş1.getText()~giriş2.getText());
	}
}

void main(string[] args)
{
	Main.init(args);
	Pencere pencere= new Pencere();
	Main.run();
}

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

December 19, 2017

sabahı beklemeden yazdım .. kodun çok profesyonel olmasada son hali aşağıda.. Artık kodumuz iki girişi topluyor.. Elbette string girince saçmalıyor şu an için ancak şimdilik bu kadar yeterli daha sonra hataları engelleyecek mekanizmayı geliştireceğimççç
bundan sonraki hedefim görsel bileşenlerin ayarları örneğin Entry boyutunu görsel olarak değiştirmek ve sonrasında görsel bileşenleri artıırmak ve ardından daha önce burda yardımını da istediğim bir konu örneğinden yani dosyadan dataları okuyarak ekrana bu dataları okutmak.. Kurtulamazsın Erdem hocam benden kolay kolay :-D

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üğme1;

	this()
	{
		super("Görsel Denemeleri..");

		 düzen = new Layout(null, null);
		 etiket1 = new Label("İKİ SAYIYI TOPLUYORUZ..");
		 giriş1 = new Entry();
		 giriş2 = new Entry();
		 giriş3 = new Entry();
		 düğme1 = new Button("TOPLA!");

		setSizeRequest(500, 300);
		move(200, 200);
		düzen.setSizeRequest(95, 85);

		düzen.put(etiket1, 5, 5);
		düzen.put(giriş1,200,50);
		düzen.put(giriş2,200,80);
		düzen.put(giriş3,200,150);
		düzen.put(düğme1,55,150);
		add(düzen);
		showAll();

		düğme1.addOnClicked(&topla);
	}

	void topla(Button düğme1)
	{
		writeln("toplama tıklandı"); // bu kısım hatalarda fonksiyonun çalışıp çalışmadığının konrolünü sağlamak için vardır
		int ilk = to!int(giriş1.getText());
		int ikinci = to!int(giriş2.getText());
		auto sonuç = ilk + ikinci;
		giriş3.setText(to!string(sonuç));
	}
}

void main(string[] args)
{
	Main.init(args);
	Pencere pencere= new Pencere();
	Main.run();
}

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

December 19, 2017

Pencere sınıfına hiç üye vermemişsin. this() içindeki giriş3 vs. değişkenler hep yerel değişken; yaşamları this'ten çıkıldığında sona erer. Şunun gibi olması gerek (yalnızca giriş3 için gösteriyorum):

class Pencere : MainWindow
{
   // ...
   Entry giriş3;    // şimdi Pencere'nin üyesi

   this()
   {
       // ...
       giriş3 = new Entry();    // şimdi ilklendi (Dikkat: 'auto' yok!)
   }
}

Ali

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

December 19, 2017

Alıntı (cos00kun):

>

D dilini bitirmeden GtkD yürütürsen

Bence ikisi birlikte yürümeli yoksa koca dilin tamamını hatmetmek çok uzun sürer. :)

Ali

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

December 19, 2017

işe yaradı :-)

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

December 19, 2017

to, ConvException atar. Şöyle bir şey olabilir (derlemeden):

   void topla(Button düğme1)
   {
       writeln("toplama tıklandı"); // bu kısım hatalarda fonksiyonun çalışıp çalışmadığının konrolünü sağlamak için vardır
       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ı saçma biçimde sonuç alanında bildiriyorum :)
           giriş3.setText("HATA: İki tamsayı girmelisiniz");

       } catch (Exception hata) {
           // Başka çeşit bir hata oluştu
           import std.string : format;
           giriş3.setText(format("HATA: %s", hata.msg));
       }
   }

Ali

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

December 20, 2017

kodumuz şimdilik ufak birkaç düzenlemeyle şöyle oldu;

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üğme1;

   this()
   {
       super("Görsel Denemeleri..");

		düzen = new Layout(null, null);
		etiket1 = new Label("İKİ SAYIYI TOPLUYORUZ..");
		giriş1 = new Entry();
		giriş2 = new Entry();
		giriş3 = new Entry();
		düğme1 = new Button("TOPLA");

       setSizeRequest(500, 300);
       move(200, 200);
       düzen.setSizeRequest(195, 85);
       düzen.put(etiket1, 5, 5);
       düzen.put(giriş1,200,50);
       düzen.put(giriş2,200,80);
       düzen.put(giriş3,200,150);
       düzen.put(düğme1,55,150);
       add(düzen);
       showAll();

       düğme1.addOnClicked(&topla);
   }

	void topla(Button düğme1)
   {
       writeln("toplama tıklandı"); // bu kısım hatalarda fonksiyonun çalışıp çalışmadığının konrolünü sağlamak için vardır.
		etiket1.setLabel("İKİ SAYIYI TOPLUYORUZ..");
       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ı saçma biçimde sonuç alanında bildiriyorum :)
           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();
}

belki konu dışı olacak ama ufak bir soruda D dilinden olsun konuyla biraz ilintili olduğu için müsadenizle;
buradaki ' import std.string : format;' burada string sınıfını programa dahil ediyıruz burasında sıkıntı yok ancak ':format' ile ne amaçlanıyor ? benim sınıflar konusundaki bilgim doğrultusunda; sanki format diye bir üst sınıftan türetilen bir string sınıfı çıkıyor olmalı . tam çözemedim açıkçası .. :rolleyes:

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