19 Aralık 2010 Pazar

[ Delphi ] Delphi Programlama Vize Sınavında Sorulan 3. Sorunun Cevabı

Merhaba arkadaşlar. Delphi vize sınavında hocanın sorduğu 3. soru;



a) Form içinde bir sayaç tanımlanacak. Minumum değeri 0, Maksimum değeri 255 olacak.
b) Form açıldığında birinci timer devreye girecek ve sayacın değerini devamlı bir arttıracak ve bu değeri ListBox1 objesinin içine ekleyecek. Bu işlem sayaç maximum değerini alıncaya kadar devam edecek. Sayaç Maksimum değerini alınca Minumum değerine geri dönecek 1. Timer durup 2. timer devreye girecek.
c) 2. Timerda , 1. Timer gibi çalışacak fakat sayacın değerini ListBox2 'ye ekleyecek Maksimum değerini alıncaya kadar devam edecek. Maksimum değerini alınca minumum değerine geri dönecek 2. timer durup 1. timer devreye girecek.

Sorunun Çözümü ;
 Öncelikle bir sayac değişkeni tanımlamalıyız. Bu değişkeni farklı nesnelerde kullanacagımızdan ötürü global olarak tanımlıyoruz..

a) Sayaç tanımlama.
var
  Form1: TForm1;
  sayac:byte;         // Soruda söylendiği gibi bir sayac tanımlıyoruz
  //BYTE tipinde tanımladık cünkü 0 ile 255 arasında karakter tutabiliyor bu değişkenimiz.




b) Timer1 Nesnesinin OnTimer Olayına yazılan kodlar;
procedure TForm1.Timer1Timer(Sender: TObject);     // Timer1'in OnTimer Olayına yazılan kodlar.
begin
sayac:= sayac + 1;     // Burada Sayacı 1 artırıyoruz.
ListBox1.Items.Add(inttostr(sayac));   // Yukarıda artırtıgımız sayac değerini Listbox1 'in içine yazdırıyoruz.
// Tabi Mutlaka inttostr Komutu ile gerekli dönüşümü yapmak zorundayız.

if sayac = 255 then    // Sayaç Maksimum degeri yani 255 'i alınca Timer1 i durdurup, Timer2 'yi çalıştırıyoruz ve Sayac'ın degerini Sıfırlıyoruz yani minumum degerini atıyoruz.
begin
sayac := 0;  // Sayacı sıfırladık.
timer1.Enabled:=false; // Timer1 'i durdurduk.
timer2.Enabled:=true;  // Timer2 'yi Çalıştırdık.
end;
end;





c) Timer2 Nesnesinin OnTimer Olayına yazılan kodlar;
procedure TForm1.Timer2Timer(Sender: TObject);     // Timer2'nin OnTimer Olayına yazılan kodlar.
begin
sayac:= sayac + 1;     // Burada Sayacı 1 artırıyoruz.
ListBox2.Items.Add(inttostr(sayac));   // Yukarıda artırtıgımız sayac değerini Listbox2 'nin içine yazdırıyoruz.
// Tabi Mutlaka inttostr Komutu ile gerekli dönüşümü yapmak zorundayız.

if sayac = 255 then    // Sayaç Maksimum degeri yani 255 'i alınca Timer2 'yi durdurup, Timer1 'i çalıştırıyoruz ve Sayac'ın degerini Sıfırlıyoruz yani minumum degerini atıyoruz.
begin
sayac := 0;  // Sayacı sıfırladık.
timer2.Enabled:=false; // Timer2 'yi durdurduk.
timer1.Enabled:=true;  // Timer1 'i Çalıştırdık.
end;
end;



15 Aralık 2010 Çarşamba

[ C# ] System.Net.Mail kütüphanesini kullanarak GMAIL ile Mail Gönderme

Merhaba, uzun bir aradan sonra boş bir anda kurcaladıgım .NET Framework 4 'te .net.mail kütüphanesinden ortaya gayet güzel ve geliştirmeye açık bir yazılım daha sizlerin karşısına çıktı.

Programın amacı ; Benim gibi üşengeç birinin internet tarayıcısını açıp adres çubuğuna adresi yazıp sitenin acılmasını bekleyip sonra kullanıcı bilgilerini girip giriş butonuna bastıktan sonra yine bir süre beklemek gercekten cok bunaltıcı hatta zaman kaybı. İşte bu durumda bu program devreye giriyor ve siz sadece kullanıcı bilgilerinizi ve göndereceğiniz mailin bilgilerinizi yazıp gönder tuşuna basıp mailinizin sorunsuz bir şekilde karşı tarafa iletilmesini sağlaya biliyorsunuz.


Programın kullanımı ; Arkadaşlar aşağıdaki resimdende anlaşıldığı üzere kullanımı gayet basit. Sağ üst köşede Gmail Kullanıcı adı ve şifrenizi girdikten sonra " Giriş yap " Butonuna basın. Sonra ilgili alanları doldurun ve " Gönder " Butonuna basın ve mailiniz gitmiştir ; .)



Programın Kodları ; 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Mail;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public string Kadi1;
        public string Ksifre1;

        public class Gmail
        {
            public string Kadi { get; set; }
            public string Ksifre { get; set; }

            public Gmail(string username, string password)
            {
                Kadi = username;
                Ksifre = password;
            }

            public void Send(MailMessage msg)
            {
                try
                {
                    SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
                    client.EnableSsl = true;
                    client.DeliveryMethod = SmtpDeliveryMethod.Network;
                    client.Credentials = new NetworkCredential(Kadi, Ksifre);
                    client.Send(msg);
                    MessageBox.Show("Mail başarılı bir şekilde gönderilmiştir..","Başarılı !",MessageBoxButtons.OK,MessageBoxIcon.Information);
                }
                catch
                {
                    MessageBox.Show("SMTP Sunucusu ile bağlantı kurulamadı. ", "Hata !",MessageBoxButtons.OK,MessageBoxIcon.Stop);
                }
               
       
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Gmail Sunucusuna Bağlanıyor. Lütfen Bekleyin.", "Bilgi !", MessageBoxButtons.OK, MessageBoxIcon.Information);
            try
            {
                Gmail gmail = new Gmail(Kadi1, Ksifre1);
                MailMessage msg = new MailMessage(kimeTXTBX.Text, kimeTXTBX.Text);
                msg.Subject = konuTXTBX.Text;
                msg.Body = mesajTXTBX.Text;
                gmail.Send(msg);
              
            }
            catch
            {
                MessageBox.Show("Kullanıcı Bilgilerini Yanlış Girdiniz. Lütfen Tekrar Girin !");
                kadiLBL.Visible = true;
                SifreLBL.Visible = true;
                kadiTXTBX.Visible = true;
                sifreTXTBX.Visible = true;
                girisBTN.Visible = true;
                kUyariLBL.Visible = true;
                sUyariLBL.Visible = true;
            }
           
        }

        private void girisBTN_Click(object sender, EventArgs e)
        {
            if (kadiTXTBX.Text.Length == 0 | sifreTXTBX.Text.Length == 0)
            {
                MessageBox.Show("Lütfen Bilgilerinizi Eksiksiz Girin !","Hata !",MessageBoxButtons.OK,MessageBoxIcon.Error);
                if ( kadiTXTBX.Text.Length == 0 )
                {
                    kUyariLBL.Visible = true;
                }
                else
                {
                    kUyariLBL.Visible = false;
                }
                if ( sifreTXTBX.Text.Length == 0)
                {
                    sUyariLBL.Visible = true;
                }
                else
                {
                    sUyariLBL.Visible = false;
                }
            }
            else
            {
                Kadi1 = kadiTXTBX.Text;
                Ksifre1 = sifreTXTBX.Text;
                MessageBox.Show("Başarılı bir şekilde giriş yapılmıştır..", "Gmail", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                kadiLBL.Visible = false;
                SifreLBL.Visible = false;
                kadiTXTBX.Visible = false;
                sifreTXTBX.Visible = false;
                girisBTN.Visible = false;
                kUyariLBL.Visible = false;
                sUyariLBL.Visible = false;
            }


        }

        private void button2_Click(object sender, EventArgs e)
        {
            kimeTXTBX.Clear();
            konuTXTBX.Clear();
            mesajTXTBX.Clear();
        }
    }
}






9 Kasım 2010 Salı

[ C# ] Dijital Saat

Merhaba arkadaşlar 02.11.2010 Salı günü Görsel Programlama 1 Dersinde yaptığımız Dijital saatin bitmiş hali ektedir.
Her satırın hangi amaçla yazıldığını açıklama olarak yanlarına ekledim. Umarım kafanızda soru işaretleri kalmaz..

İndirme Linki ; 
http://cid-ab97369ef90e9912.office.live.com/self.aspx/.Public/dijitalSaat.rar


Programın Resmi ;




Kodlar ; 



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace dijitalSaat // Görsel Programlama 1 - Bekir AKSOY

{

    public partial class Form1 : Form
    {
        public int saniye, dakika, saat;  // Saniye, dakika, saat değişkenlerini global olarak tanımlıyoruz..
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Activated(object sender, EventArgs e)
        {
            saniye = DateTime.Now.Second;   // Sistem saniyesini, saniye değişkenine atıyoruz..
            dakika = DateTime.Now.Minute;   // Sistem dakikasını, dakika değişkenine atıyoruz..
            saat = DateTime.Now.Hour;       // Sistem saat, saat değişkenine atıyoruz..
            // Yukarıdaki atamaları dijital saatimizin sistem saati ile aynı zamanı göstermeleri için yapmaktayız.

            saniyelbl.Text = System.Convert.ToString(saniye);  // saniye değişkenini saniyelbl.text 'e stringe çevirerek yazdırıyoruz..
            dakikalbl.Text = System.Convert.ToString(dakika);
            saatlbl.Text = System.Convert.ToString(saat);

            saatimer.Interval = 1000;  // Timer'in kac saniyede bir tetikleneceğini belirttik, milisaniye cinsinden..
            saatimer.Start();          // Timer'imizi başlattık.
        }


        private void saatimer_Tick(object sender, EventArgs e) // Timer'in tick olayı
        {
            saniye = saniye + 1;   // Saniyeyi 1 artırıyoruz.
            saniyelbl.Text = System.Convert.ToString(saniye); // Saniyenin her yeni degerini saniyelbl.text 'e yazıyoruz.

            if (System.Convert.ToInt32(saniye) == 60) // saniye 60 'a eşit olduğunda
            {
                dakika = dakika + 1;                  // Dakikayı 1 artırıyoruz..
                dakikalbl.Text = System.Convert.ToString(dakika);  // Dakikanın yeni değerini dakikalbl.text 'e yazıyoruz.
                saatimer.Stop();
                saniyelbl.Text = System.Convert.ToString(System.Convert.ToInt32(saniye) - System.Convert.ToInt32(saniye)); // Saniyeyi Sıfırladık..

            }

            if (saniyelbl.Text == System.Convert.ToString(0)) // Saniyelbl.text 0 'a eşit olduğunda
            {
                saniye = 0; // Saniyeyi sıfırladık..
                saatimer.Start();
            }

            if (System.Convert.ToInt32(dakika) == 60) // Yine aynı mantıkla dakika 60 olduğunda saati 1 artırdık..
            {
                saat = saat + 1;
                saatlbl.Text = System.Convert.ToString(saat);
                dakikalbl.Text = System.Convert.ToString(System.Convert.ToInt32(dakika) - System.Convert.ToInt32(dakika));
                saatimer.Stop();
            }

            if (dakikalbl.Text == System.Convert.ToString(0))
            {
                dakika = 0;
                saatimer.Start();
            }

            if (System.Convert.ToInt32(saat) == 24) // Ve en son saat 24 olduğunda saniye,dakika ve saati sıfırlıyoruz.
            {
                dakika = 0;
                saniye = 0;
                saat = 0;
                saatlbl.Text = System.Convert.ToString(System.Convert.ToInt32(saat) - System.Convert.ToInt32(saat));
                saatimer.Start();
            }

            if (saniye < 10)
            {
                saniyelbl.Text = '0' + System.Convert.ToString(saniye);
            }
            if (dakika < 10)
            {
                dakikalbl.Text = '0' + System.Convert.ToString(dakika);
            }
            if (saat < 10)
            {
                saatlbl.Text = '0' + System.Convert.ToString(saat);
            }


            if (label1.Visible == true) // Saat ve dakika arasında ki  "  :  " işaretinin yanıp sönmesini sağlıyoruz.
            {
                label1.Visible = false;
            }
            else
            {
                label1.Visible = true;
            }

            if (label2.Visible == true) // Dakika ve saniye arasında ki  "  :  " işaretinin yanıp sönmesini sağlıyoruz.
            {
                label2.Visible = false;
            }
            else
            {
                label2.Visible = true;
            }
        }

    }
}



30 Ekim 2010 Cumartesi

[ C# ] ASCII To Binary & Binary To ASCII

Merhaba arkadaşlar başlıktanda anlaşıldığı gibi, ASCII karakterleri Binary kodlarına ve tam tersine çeviren bir programdır. Geçen hafta bu çeviriyi yapan çok site araştırmıştım ve sonunda bir önceki konuda bahsettiğim siteyi bulmuştum. O sitenin mantığıyla yazdığım bir program..

Programın Resmi ; 







Kaynak kodunu indirebileceğiniz link ;
http://cid-ab97369ef90e9912.office.live.com/self.aspx/.Public/AsciiToBinary.rar

22 Ekim 2010 Cuma

Binary kod sisteminden ASCII kod sistemine dönüştürme ( Binary to ASCII )

Merhaba arkadaşlar kaç gündür saatlerce bilgisayar başında sadece bu dönüşümü yapmak için bir çok site araştırdım ve sonunda buldum. Sizlerle paylaşmak istedim.
Sitenin adresi  :  http://www.theskull.com/javascript/ascii-binary.html
Buda Ascii karakterlerin Binary kod tablosu : http://sticksandstones.kstrom.com/appen.html
Çok yakında programınıda yazacağım.
İyi günler..

20 Ekim 2010 Çarşamba

Yargıtay'dan sert türban çıkışı! Laik'lik ilkesiyle bağdaşmadığı görülmekte ''Siyasilerin beyanları politik çıkara dayanmakta."

Yargıtay Başsavcılığı: Yargının türban kararına yasama ve yürütme uymak zorundadır.

Yargıtay Başsavcılığı YÖK'ün aldığı "Başörtülü öğrenciler tüm sınavlara başları kapalı şekilde girebilirler" kararına tepki gösterdi. Başsavcı Abdurrahman Yalçınkaya'nın yayınladığı açıklamada şunlar kaydedildi:

'Dinsel inanç veya dinsel kurallarla doğrudan ilişki ve bağlantı kurularak yapılan düzenlemeler, hem devrim yasalarını, hem de laiklik ilkesini ilgilendirir. Yükseköğretim kurumlarındaki öğrencilerin giyimlerini düzenlerken türban kullanımına dinsel inanç nedeniyle geçerlilik tanımak, kamu hukuku alanındaki bir düzenlemeyi dinsel esaslara dayandırma suretiyle laiklik ilkesine aykırılık oluşturur. Yasama ve yürütme yargı kararlarına uymak zorunda. AIHM kararına göre türban yasağı zorunlu tedbirdir. Gerek iç hukuk, gerekse uluslararası hukuk boyutuyla değerlendirildiğinde türbanın koruma görmediği ve laiklik ilkesiyle bağdaşmadığı görülmektedir. Siyasilerin beyanları politik çıkara dayanmakta."


9 Ekim 2010 Cumartesi

[ Delphi 7 ] Yaş Hesaplama

Bu programda Delphi 7 'de DateUtils kütüphanesinin kullanımı basit bir şekilde uyguladım.
Resimdende anlaşıldığı gibi siz sadece doğum yılınızı yazıyorsunuz ve program size kaç yaşında olduğunuzu ve kaç gün yaşadığınızı hesaplıyor.

procedure TForm1.BitBtn1Click(Sender: TObject);
var
dyil,syil,yas,gun:integer;
tgun:TDateTime;

begin
dyil:=StrToInt(Edit1.Text);       // Edit1 'in içine girilen doğum yılını integer'a çeviriyoruz.
syil:=CurrentYear;                // CurrentYear Şimdiki yıl'ı göstermektedir. syil degişkenine şimdiki yılı atadık.
yas:=syil-dyil;                   // İlgili sayılsal
gun:=(yas-1)*365;                 // işlemleri yaptık.
tgun:=gun+DayOfTheYear(tgun);     // Burada dogum yılından bu yıla kadar olan günün toplamını hesaplattık.

Edit2.Text:=IntToStr(yas);        // Sayılsal işlemlerimizi yaptıktan sonra verilerimizi string 'e çevirmek zorundayız.
Edit3.Text:=IntToStr(gun);        // çünkü Edit nesnesi string tanımlı oldugundan integer deger gönderemeyiz..

end;

Kaynak Konudu İndir ;
http://cid-ab97369ef90e9912.office.live.com/self.aspx/.Public/yashesap.rar


Delphi 7 ile dosyalama işlemi


Merhaba arkadaşlar,

Geçmişte yazmış olduğum programlardan birini tanıtayım size, bu programda her hangi bir veritabanı sistemine ihtiyaç duymadan uzun uzun veri tabanına bağlanmak için kod yazmadan ufak bir dosyalama sistemini yapmaya çalıştım..

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Listbox1.Items.Add (Edit1.Text+' '+Edit2.Text+' '+Edit3.Text+' '+ComboBox1.Text);
end;

Yukarıdaki koddan da anlaşıldığı üzere BitBtn1 ‘in Click olayında Edit1 ,  Edit2 , Edit3 ve ComboBox ‘a girilen yazıları satır satır Listbox ‘a aktarıyoruz..

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ListBox1.Items.Delete(ListBox1.ItemIndex);
end;

Yukarıdaki kodda ise Temizle Butonunun bağlı olduğu buton’un kodu mevcut. Bu kodda Listbox ’a aktarılan verilerin hepsini temizlemek içindir.

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
ListBox1.Items.SaveToFile('maas.dat');
end;

ve asıl işlemi yaptığımız yere yani KAYDET butonunun Click  olayına geldik çoğu arkadaşım hala bunu anlamamakta diretiyor oysa kodda her şey açık açık yazıyor.  Diyor ki ;
ListBox1 ‘in içinde ne görüyorsan hepsini “ maas.dat “ dosyasının içine kaydet. İşte bu kadar.

Kaynak Kodunu Aşağıdaki Linkten İndirebilirisiniz..



8 Ekim 2010 Cuma

Bedava SMS Gönder !

Bir gün kontürümün olmamasından dolayı internette beleşe mesaj göndermek için her ne kadar yabancı site varsa hepsinde cirit attım ama sonunda işe yarayan bir siteyi sonunda bir TÜRK yapımı bdvsms.net 'i buldum. Gerçektende anında SMS 'inizi gönderiyor ama her 15 dakika da sadece 1 mesaj gönderme hakkı tanıyor.

Sizde SMS göndermek için aşağıdaki linki kullanabilirsiniz ..
http://www.bdvsms.net/bedavasmsgonder.php

Bilge Adam C# Kitabı

Bu kitabın PDF 'sini çok aramıştım ve sonunda buldum. Çoooook işinize yarayacak tabi indirip bir klasöre hapis etmezseniz programlama adına çok yol kat etmiş olacaksınız..

Aşağıdaki linkten indirebilirsiniz ..
http://cid-ab97369ef90e9912.office.live.com/browse.aspx/.Public

Blog Başlangıcı

Merhaba arkadaşlar, 
vallahi blog işine ilk adımlarımı atıyorum hoş daha başlangıc yazısında ne yazacağımı pek bilmiyorum ama başlamak bitirmenin yarısıdır : .) diyerek amacımı açıklamaya başlaya bilirim..

Yeni öğrendiğim bilgilerin sürekli hafızamda güncel kalmayacağından bir alana yazmam gerektiğini düşündüğüm için blogger'i seçtim tabi ilerleyen zamanlarda kendi hosting alanıma geçecegim. Neyse hem kendim için hemde sizin için güncel hayatta ki ve internet teknolojilerinde ki atılan yeni adımları takip etmeniz için bu blogu oluşturdum.