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();
        }
    }
}