Coder

29 Mart 2011

Csharp da resimli ekran koruyucu

ekran koruyucu yapmakBu yazıda Graphics sınıfını kullanarak basit resimli ekran koruyucu nasıl yapılır öğrenelim. Bu sınıfı C#’da daha çok görsellik katmak için kullanırız. Hem öğrenmek hemde biraz eğlencelik açısından ekran koruyucu nasıl yapılır öğrenelim.

Boş form açıp, Properties’den Resources.resx’e çift tıklayıp projemizde kullanacağımız güzel bir resim ekleyin. Resmin adı my_resim olsun(kodlamadaki resim yolunu bulabilmek için resmin ismini my_resim olarak ayarlayın). Ardından forma başka hiçbir şey eklemeden kod kısmına dalalım;





[cc lang="c#"]

private void Form1_Load(object sender, EventArgs e)
{
settings();
}

private void settings()
{
this.BackColor = Color.Azure; //form arka plan rengini Azure yaptık
this.Width = SystemInformation.PrimaryMonitorSize.Width; //Genişlik ve yüksekliği o monitörün ayarlı olan çözünürlüğüne göre ayarlamak için değerleri aldık.
this.Height = SystemInformation.PrimaryMonitorSize.Height;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; //formun border yani başlık çubuğunun ve kenarlarının kaldırılmasını sağladık
this.WindowState = FormWindowState.Maximized; //formun tamamını gösterdik
this.Location = new Point(0, 0); //formun bulunduğu alan
this.TopMost = true; //Formun tüm pencerelerin üzerinde gözükmesini true yapıyoruz

Timer tmr = new Timer(); //timer oluşturduk
tmr.Interval = 50;
tmr.Tick += new EventHandler(tmr_Tick);
tmr.Enabled = true;
this.DoubleClick += new EventHandler(Form1_DoubleClick); //forma çift tıklanınca Form1_DoubleClick metodunu çalıştır

}

void Form1_DoubleClick(object sender, EventArgs e)
{
Application.Exit(); //uygulamadan çık
}
Random rnd = new Random(); //* işaretinin rastgele çıkabilmesi için random değer tanımladık
void tmr_Tick(object sender, EventArgs e)
{
Graphics gr = this.CreateGraphics(); //Graphics sınıfını oluşturduk
Image img = Properties.Resources.my_resim; //projemizde kullanacağımız resim ve resim yolu
Bitmap bm = new Bitmap(img, this.Width, this.Height); //img’ı yani resimi formun genişlik ve yüksekliğine göre ayarladık
Image img2 = bm as Image; //bm’nin resim gibi davranmasını istedik

TextureBrush firca = new TextureBrush(img2, System.Drawing.Drawing2D.WrapMode.Tile);
gr.DrawString((“*”),new Font(“Arial”, rnd.Next(1,200)), firca, rnd.Next(-50, this.Width +50), rnd.Next(-50, this.Height +50));
}
}[/cc]

Eklemeyi unutmayın!
[cc lang="c#"]using System.Drawing;[/cc]

Genel olarak; ilk önce metot yardımı ile form ekranın ayarlarını yaptık. Ekran çözünürlüğüne göre genişlik ve yükseklik değerlerini aktardık. Üzerindeki şekillerin silinmesi ile ortaya çıkacak olan resmin; gözle görülür bir şekilde olması için Timer ekledik. Açılan forma çift tıklayarak da formdan çıkılmasını istedik. Oluşturulan Timer’a ekran koruyucumuz için ayarlamaları yaptık. Ayrıntılı açıklamayı kodlar içinde de bulabilirsiniz. Resimli ekran koruyucusunun hikayesi buydu.

Programı yaptıkdan sonra .exe uzantılı çalıştırılabilir dosyasının uzantısını .scr olarak değiştirin, ardından C:\WINDOWS klasörünün içine yapıştırın. Bundan sonra masaüstünden sağ tuş tıklayıp özelliklerden girerek kendi ekran koruyucunuzu kullanabilir siniz.

Kaynak : Cemal Can AKGÜL (Bilge Adam Yazılım Eğitmeni)

25 Mart 2011

Sql fonksiyonlarını C# tarafında kullanma

Beynimin uyuşmasına rağmen, basit bir konuyu sabahın 01:00 sularında yazıp paylaşmak istedim. Anlatmak istediklerimi anlamaya çalışın lütfen. Senaryo şöyle gelişti; veritabanın da bulunan tablodaki id’nin en büyük değerini görsel yani ADO.NET ile C# tarafında göstermek istedim. Veritanında tablodaki en büyük sayıyı, değeri bulabilmek için MAX fonksiyonu kullandım ama olmadı. Şöyle ki;

[stextbox id="info"]Sql herhangi bir tablodaki kolonun en büyük değeri bulma[/stextbox]
[cc lang="sql"]Select MAX(id) from tablom[/cc]

Bu sorgu ile tablom tablosunda id kolonunda en büyük id değerini alırız. İşte bu değeri C# tarafında gösterebilmek için SqlCommand cmd = new SqlCommand(“Select MAX(id) from tablom”) deyip lak diye yerleştiremeyiz, çünkü çalışmaz, neden çalışmadığının hikayesine şimdi giremeyeceğim. Bu sorgu sonucunu C# tarafında alabilmek için Output parametreli Stored Procedure ihtiyacımız olacaktır. Şöyle bir procedure oluşturarak ;

[stextbox id="info"]Output parametreli Stored Procedure oluşturma[/stextbox]
[cc lang="sql"]create proc sp_enbuyukid (@sonid int output)
as
begin
select @sonid=MAX(id) from tablom
end[/cc]

@sonid geri gelen parametre ile C# tarafında procedure sonucunu gösterebiliriz. Şimdi siz bunun C# tarafında nasıl gösterilir diye soracak olursanız, formunaza veya web projesi sayfanıza bir Label koyup Page_Load veya Form_Load kısmana dalarak göstere bilirim;

[stextbox id="info"]Output parametreli Stored Procedure’ü C# tarafında bağlama[/stextbox]
[cc lang="c#"]SqlConnection sql = new SqlConnection(“server=.; database=veritabanim; trusted_connection=true;”);

SqlCommand cmd = new SqlCommand();
cmd.Connection = sql;

cmd.CommandText = “sp_enbuyukid”;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(“@sonid”, SqlDbType.Int);
cmd.Parameters["@sonid"].Direction = ParameterDirection.Output;

sql.Open();
cmd.ExecuteNonQuery();

try
{
Label1.Text = cmd2.Parameters["@sonid"].Value.ToString();

}
catch (Exception)
{

Label1.Text = “Hata!!!”;
}

sql.Close();[/cc]

Bu şekilde bir müdahale ile sql fonksiyonlarını benzer şekilde c# tarafında kullana bilirsiniz. Laubali anlatımdan dolayı özür borçluyum…

24 Mart 2011

Özel textbox

Filed under: C# — Etiketler:, , — Murat M.oğlu @ 00:13

Visual Studio da kendi sınıfımızı oluşturabiliriz. Oluşturduğumuz bu özel clas’ı projelerimizde tekrar tekrar kullanabiliriz. Örneğin özel bir textbox; genişliği, font özelliği, yalnızca rakam girilen özel class oluşturmak istersek;

Bir Windows Form projesi açıp form oluşturun. Ardından Solution Explorer’dan sağ tuş Add diyerek Component Class ekleyelim. Eklediğinizde bu yazının gözükmesi gerekir, click here to switch to code view bağlantısına tıklayıp kod kısmına gelin. Bundan sonrası kodlama kısmı;

İçindeki tüm kodları silip alttaki kodları yapıştırabilirsiniz.

[cc lang="c#"]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows.Forms; // eklememiz gerekir

namespace _32_3
{
public partial class kendiclas1 : TextBox //TextBox olarak değiştirmeyi unutmayın !
{

public string degiskenim { get; set; }
public kendiclas1()
{
InitializeComponent();

ayar();
}

public kendiclas1(IContainer container)
{
container.Add(this);

InitializeComponent();
ayar();
}

private void ayar()
{
this.Width = 300; //textbox genişliği ayarlanmabilir
this.Font = new System.Drawing.Font(“Times New Roman”, 13f); // girilen yazı fontu
this.KeyPress += new KeyPressEventHandler(kendiclas1_KeyPress); //
}

void kendiclas1_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsNumber(e.KeyChar) || e.KeyChar == ‘\b’)
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}

}
}
[/cc]

kodlamayıda yaptıktan sonra F6 tuşuna basıp derleyin. Ardından form ekranına gelip sol taraftaki yeni oluşturduğumuz yeni class’ımızı görebilirsiniz…

Kaynak : Cemal Can AKGÜL BilgeAdam Yazılım Eğitmeni

Powered by WordPress