5 Ağustos 2009 Çarşamba

ZEYTİNLİ(!) ROCK FESTİVALİ

4 yıldır düzenlenen zeytinli rock festivali 5. yılında isim ve mekan değiştirerek "Rock Tatili Foça" adıyla 13-16 ağustosta Foça'da olacak
Her yıl "Zeytinli çok uzak","günübirlik gidemem ki" bahaneleriyle gitmediğim zeytinli rock festivali artık burnumun dibine geldikten sonra bu yıl hangi bahaneyle gitmeyeceğimi merak ediyorum doğrusu:)



İlgilenenler için bu da web sitesi. http://www.rocktatili.com/

3 Ağustos 2009 Pazartesi

GUI lere hızlı bir başlangıç

Eğer c#'a c gözüyle bakıp o hızla ilerlemeye kalkarsam çok yanılırım.Bu yüzden hemen gui'lere bir başlangıç yapmam gerekiyordu.Gui bileşenlerini tanımaya ve özelliklerini anlamaya başlamak şart oldu.Hemen bir panel yapıp içini check boxlarla doldurdum.Bunun yanında bir buton ve sonucu yazdırmak için bir de label koydum.Program butona basıldığında kaç check box'ın işaretli olduğunu label'a yazdıracak.

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 WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
int i, sayac = 0;
foreach (Control item in panel1.Controls)
{
if (item.GetType() == typeof(CheckBox))
{
CheckBox chk = (CheckBox)item;
if (chk.Checked)
sayac++;
}
}

label1.Text = sayac.ToString();
}
}
}

Gayet güzel:)
Ama kesinlikle yeterli değil:) Windows Form Application oluşturup küçük bir nodepad uygulaması yaptım.

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.IO;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)
{
//txt uzantılı dosyaları filtreler
openFileDialog1.Filter = "Text files|*.txt";
if (openFileDialog1.ShowDialog() == DialogResult.OK)

{
string file = openFileDialog1.FileName;
Stream strem = openFileDialog1.OpenFile();
//windowsun türkçe karakter kodlaması 1254 olduğu için dosyanın içindeki türkçe karakterler sorunsuz gösterilir
StreamReader read = new StreamReader(strem, System.Text.Encoding.GetEncoding(1254));
richTextBox1.Text= read.ReadToEnd();

}
}

private void Form1_Load(object sender, EventArgs e)
{


}

private void button2_Click(object sender, EventArgs e)
//txt uzantılı dosyaları filtreler
{saveFileDialog1.Filter = "Text files|*.txt";
//diyalog penceresinde tamama basıldığında
if (saveFileDialog1.ShowDialog() == DialogResult.OK){
string file = saveFileDialog1.FileName;

richTextBox1.SaveFile(file);

}
}

}
}

Herbir kontrolün kendine ait birçok özelliği var ve kullanılarak tecrübe edilerek öğrenilecek şeyler.Çok çalışmam lazım:)

Visual Studio 2008

Artık c# a biraz daha profesyonel yaklaşmak gerekiyor sanırım.Bunun için de Visual Studio şart oldu.Altı üstü bir program kurmak değil mi nasıl olsa! NetBeans kurar gibi kurarım ne olacak! Ama olmadı,bu sefer güldürmedi! Visual Studio 2008'i kurmaya çalışırken daha işin en başında .net framework 3.5'i kurarken şu hatayla karşılaştım.




Kurulumu kapattım ve bilgisayarımda yüklü olan .net framework 2.0'ı kaldırıp vs2008 kurulumuna devam edeyim belki düzelir dedim ama gene olmadı. .net framework 2.0 bilgisayarımı resmen sahiplenmiş,kaldıramıyorum. vs 2008'i acil kurmam gerektiği için nihai çözüm olan FORMAT yolunu tercih ettim:(

Artık tertemiz bir bilgisayarım ve gıcır gıcır bir vs2008'im var.Fakat hala NetBeans'i aramıyor değilim.

Hello World!

Hayatıma c# ile yeni bir başlangıç yapıyorum.Üniversitede c# sınavları çoktan seçmeli olunca gerçek hayatta da çoktan seçmeli bir c# bekliyor ister istemez insan:)
Visual Studio kurmadan önce kullandığım ide SharpDevelop oldu.Açık kaynak kodlu bir c# ide'si.SharpDevelop'ta c#'a başlangıç yaptığım,çözmeye,öğrenmeye çalıştığım birkaç özellik var.Mesela c# ta masaüstü uygulamalarda "anchor" özelliği default olarak top,left durumunda yani ekran büyütüldüğünde,uygulama sadece sol ve yukardan büyüyor.Bunu engellemek için "achor" kısmını top,left,right,bottom yaparsak büyüdüğünde orantılı genişleyip küçülüyor.İlerde kullanacağımı umut ederek ilk öğrendiğim özelliğin mutluluğunu yaşıyorum:)

c# ta uzun bir aradan sonra(yaklaşık 2.5 yıl) ilk yazdığım program "Hello World!" olmadı:)
c ile pointer'lara başladığımızda yaptığımız en anlaşılır pointer örneği değişkenin değerini değiştiren fonksiyondu.İsmail Hoca'nın örneği hala gözümün önünde:) Hatta bir sınavda da çıktı diye hatırlıyorum.Neyse konumuz Call by reference ve call by value.c# bu işi "ref" anahtar sözcüğü ile çözmüş.Şöyle ki;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static int x = 7;
static int y = 8;

static void func(ref int x, ref int y) {
int temp;
temp = x;
x = y;
y = temp;

}

static void Main(string[] args)
{
func(ref x,ref y);
Console.WriteLine("x :{0},y :{1}", x, y);
Console.ReadLine();

}
}
}

Sonuç beklediğimiz gibi "x:8,y:7" Gayet basit.ama bu kadar kolay olmamalı.call by reference için az uğraşmamıştık.Kulakların çınlasın İsmail Hocam.c'yi ve pointerları özleyeceğim aklıma gelmemişti hiç:)