Coder

21 Ekim 2013

Windows formda panel kontrol ortalama

Windows formda eklediğimiz kontrolü formun alanına göre yanlardan ve üstlerden ortalamak isteyebiliriz. Örnek olarak panel kontrolünü formda ortalamak istersek;

panel-ortalama

Boş bir windows forma panel kontrolü eklyerek formun load kısmına aşağıdaki kodları yazalım;

[cc lang='csharp' ] private void Form1_Load(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;

float x = (Convert.ToInt32(this.Width) – Convert.ToInt32(panel1.Width)) / 2;
float y = (Convert.ToInt32(this.Height) – Convert.ToInt32(panel1.Height)) / 2;

panel1.Location = new Point(x: Convert.ToInt32(x), y: Convert.ToInt32(y));
}[/cc]

Formu tam ekran başlatmak için WindowState özelliğini kullandık. Ardından panelin yeniden konuşlanması için formun genişğinden panelin genişliğini çıkarıp 2 ye böldük böylece sağ ve soldan ortalı bir şekilde konumlandırdık. Aynı şekilde üsten ve alttan ortalamak içinde.

14 Ekim 2013

Veritabanı yardımıyla picturebox da resim göstermek

Bu yazımda veritabanı, combobox, picturebox kontrollerini bir arada kullanarak basit bir uygulama yapalım. İlk olarak veritabanın da tblResim adında bir tablo oluşturalım. Tabloda id(int), resim için isim alanı(ad nvarchar(50)) ve resim uzantı adı(resimAdi nvarchar(50)) için kolonları oluşturmanız yeterli. Veritabanı kısımını bitirdikten sonra arayüz tarafına geçebiliriz.

[wpdm_file id=19]

Arayüz tarafına geçmeden önce örneğimizde hangi konularda pratik yapacağımızı yazayım;

Veritabanı ile resim ilişkisi
Seçili dosyayı farklı bir konuma kopyalama
Veritabanına resim adı ile kayıt yapmak
Veritabanından çekilen bilgilerle combobox doldurma
openFileDialog kontrolü ile resim dosyası işlemleri
Veritabanı aracılığı ile formda resim gösterme

Senaryomuz şu şekilde; ilk olarak formu doldurup(sadece bir isim girip) herhangi bir yerden o isim için resim seçip yükledikten sonra formu kayıt ediyoruz. Bu kayıt esnasında resim programın çalıştığı dizine seçtiğimiz resmin kopyasını kopyalayarak veritabanına sadece resmin uzantılı adını kayıt etmiş oluyoruz. Kayıt işleminden sonra sağ tarafta kalan comboboz yardımı ile kayıtlı resim isimlerini çekip, combobox seçili olan isime veritabanından karşılık gelen resimi program dizinine kopyaladığımız yerden gösteriyoruz.

combobox-picturebox

Senarya az çok oturduysa resimdeki gibi bir form ekranı tasarlayıp kod tarafına geçebiliriz. Kod içinde gerekli açıklamalar mevcuttur.

[cc lang='csharp' ] private void Form1_Load(object sender, EventArgs e)
{
comboboxDoldur();
}

private void comboboxDoldur()
{
SqlCommand cmdDoldur = new SqlCommand(“Select adi from tblResim”, sql);
sql.Open();
SqlDataReader rdr = cmdDoldur.ExecuteReader();

while (rdr.Read())
{
comboBox1.Items.Add(rdr["adi"]);
}
sql.Close();
}

private void btnKaydet_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = sql;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = “insert into tblResim (adi,resimAdi) values (@ad, @resim)”;
cmd.Parameters.AddWithValue(“@ad”, textBox1.Text);
cmd.Parameters.AddWithValue(“@resim”, resimuzantiliadi);

sql.Open();

int etkilenen = cmd.ExecuteNonQuery();

sql.Close();

if (etkilenen > 0)
{
MessageBox.Show(“Kayıt edildi…”);
comboboxDoldur();
}
else
{
MessageBox.Show(“Kayıt edilmedi !!!”);
}
}
SqlConnection sql = new SqlConnection(“server=.; database=coder; trusted_connection=true;”);
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{

SqlCommand cmd = new SqlCommand(“Select resimAdi from tblResim where adi=’” + comboBox1.SelectedItem + “‘”, sql);
sql.Open();
SqlDataReader rdr = cmd.ExecuteReader();

while (rdr.Read())
{
pictureBox1.Image = Image.FromFile(“” + rdr["resimAdi"].ToString());

pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
}
sql.Close();

}
string dosyaYolu;
string resimuzantiliadi;
private void btnYukle_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
resimuzantiliadi = openFileDialog1.SafeFileName;
dosyaYolu = Path.GetFileName(openFileDialog1.FileName);

lblResimAdi.Text = dosyaYolu;

if (File.Exists(“” + dosyaYolu)) // “” tırnak yapılmasının nedeni kopyalanacak dosyayı program exe dosyasının bulunduğu konumda dosyanın var olup olmadığını kontrol etmek için.
{
MessageBox.Show(“Dosya zaten mevcut”);
}
else
{
File.Copy(openFileDialog1.FileName, “” + dosyaYolu); // “” tırnak yapılmasının nedeni kopyalanacak dosyayı program exe dosyasının bulunduğu konuma kopyalamak için.

MessageBox.Show(“Dosya kopyalandı”);

}
}[/cc]

09 Ekim 2013

Android oyun geliştiriciler için e-kitap

Filed under: Android — Etiketler:, , — Murat M.oğlu @ 21:15

Android ile ilgilenen arkadaşlar için blog.aligoren.net kaynaklı toplanmış birkaç tane oyun geliştiricileri için e-kitap. Dil her ne kadar yabancı olsa da(ingilizce) kodları referans alınabilir. Android yazan arkadaşların takım çantaların da bulundurabileceği android e-kitaplar;

android_oyun_gelistirme

Buradan indir ; http://yadi.sk/d/ZvQlZyMeAUb53

Kaynak ; http://blog.aligoren.net/2013/10/android-oyun-gelistirme-e-kitap-indir.html

06 Ekim 2013

Combobox listview ilişkisi

Windows formda Combobox kontrolü ve akabinde listviewe seçilene göre veritabanından çekilen veriyi göstermek istemişizdir. Basit bir combobox listview ilişkisi olan bir uygulama ile konuyu öğrenelim.

[wpdm_file id=18]

Öncelikle verileri veritabanından çekeceğimiz için combobox listview ilişkisinin ortamını uygun tablolarla ayarlayalım. Senaryomuz gereği iki tablo oluşturalım. İlk tablo kişiler tablosu olsun. İçeriği; adi, soyadi, takimi(tipi int). Diğer tablo combobox da gözükecek olan takımlar tablosu olsun. İçeriği; id, takimadı(nvarchar tipli) oluşturup. Kişiler tablosundaki takimi kolonu ile Takımlar tablosundaki id yiz resimdeki gibi ilişkilendirin. İlişkilendirme yaptıktan sonra takımları girin ve kişilerle birlikte takım numaralarını resimdeki gibi girin.

iliskilendirme

kisiler-takimlar-tablosu

Veritabanı tarafını bitirdikten sonra form kısmına geçebiliriz. Forma resimdeki gibi combobox ve listview ekleyip form load olayına veritabanından takımlar tabolsundaki takım isimlerini combobox kontrolüne çekelim;

listview-combobox-kontrolu

[cc lang='csharp' ] SqlConnection sql = new SqlConnection(“server=.; database=coder; trusted_connection=true;”);
private void Form1_Load(object sender, EventArgs e)
{

SqlCommand cmd = new SqlCommand(“Select takimAdi from tblTakimlar”, sql);
sql.Open();
SqlDataReader rdr = cmd.ExecuteReader();

while (rdr.Read())
{
comboBox1.Items.Add(rdr[0]);
}
sql.Close();
}[/cc]

Seçilen takımdaki kişileri gösterebilmek için listview kontrolüne veritabanından iki tabloyu sql join komut ile birleştirerek ilgili kategori detayını kontrolde göstermek için combobox SelectedIndexChanged olayına aşağıdaki kodları yazalım;

[cc lang='csharp' ] private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
listView1.Items.Clear();

SqlCommand doldur = new SqlCommand(“select adi, soyadi, takimAdi from tblKisiler td join tblTakimlar tk on td.takimi=tk.id where takimi=’” + (comboBox1.SelectedIndex + 1).ToString() + “‘”, sql);
sql.Open();
SqlDataReader rdr = doldur.ExecuteReader();
while (rdr.Read())
{
ListViewItem li = new ListViewItem();
li.Text = rdr["adi"].ToString();

li.SubItems.Add(rdr["soyadi"].ToString());
li.SubItems.Add(rdr["takimAdi"].ToString());

listView1.Items.Add(li);
}

sql.Close();
}[/cc]

Powered by WordPress