Merhaba arkadaslar bu makalemde size c++ ile nasil .NET framework kuanirsiniz onu anlaticam .NET framework kullanmak icin size gerekli olan c++ icin .NET objelerini destekleyen bir compiler(derleyici). Bu makalede ben Microsoft visual c++ 2010 express kullanicam(Yeni versionlari (2012 ve 2014 gibi) c++ icin windows form application-i desteklemiyor)
Link : Download Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1 from Official Microsoft Download Center
Serial Key : 6VPJ7-H3CXH-HBTPT-X4T74-3YVY7 (denenmemistir)
Microsoft Visual C++ 2010 express (Bundan boyle "derleyici" ) yuklendikten sonra
New Project-e tikladiktan sonra boyle bir ekran gelicek
Burda "Windows Form Application" butonuna tikladiktan sonra Name kismina projenin ismini yaziyoruz ben projenin ismini "bu_bir_denemedir" koydum Toolbox derleyicide en onemli ogelerden biridir toolbox penceresini yanlislikla kapatirsaniz View->Toolbox kismina tiklayarak aca bilirsiniz ya da Ctrl+Alt+x combosuyla da aca bilirsiniz
Toolbox kismindan istedigimiz ogeyi ekleye biliyoruz
Eklemek icin sadece suruklemeniz yeterli oluyor.Projesi derleyip calistirmak icin F5 tusuna tikliyoruz ya da
"Sag tik->Debug->Start new instance" kismina da tikladigimizda derle ve calistir islemi basliyor Onunuze cikan pencerede OK butonuna tiklayarak derlemeyi baslatiyorsunuz Sadece derlemek icin "Sag tik->Build" butonuna tikliyoruz Mesela ben projeme bir buton bir texbox ekliyorum.TextBoxlar kullanicidan girdi alan ogelerden biridir aslinda bilgisayarda yaza bildiginiz cogu yer bir textbox-dur ve hepsinin farkli bir islevi vardir.Butonlar ama tiklanmak icindir bir butona tikladiginizda bir islem gerceklesir ve ekraninizda sonucu gore bilirsiniz (bazen de goremezsiniz).(toolbox->Common Controls->Button) (toolbox->Common Controls->Textbox)Bir Ogeye default action ekemek icin ogeye cift tiklamaniz yeterli(action - bilgisayarin herhangi bir degisikligine karsi programinizin verdigi tepkiye denir ve bu degisiklik tikama cift tiklama mausenin uzerine gelmesi vs ola bilir) buton icin varsayilan action tek tiklama actionu-dur. Buton ogesine cift tikladiginiz zaman derleyici sizi button1_Click fonksiyonuna goturur ve burda butona tikladiginiz zaman programin yapicagi seyi belirliyosunuz mesela ben ekledigim textbox-ta "Tiklandi" yazisini cikmasini istiyorum bunun icin suslu parantezlerin icerisine bu kodu yaziyoruz
Textbox gibi kullanicidan girdi alan ogelerdir ve bu ogeler
veri tipinde oluyor.Bu veri tipi C++/CLI (Visual c++) diline ozel bir veri turudur.Herhangi bir turden String^ turune donusturmek cok kolaydir.Mesela :
Cikti : (TextBox1)
Tiklamadan once

Butona tikladiktan sonra :

Not: char* ve char turundeki veri ve dizilerdeki veriler asci tablosundaki degerleri aliyor (0-255 arasindaki tam sayi) mesela A yerine 65 yaziyor(googlede ascii table yazarak Klavyeden girilen her bir tusun ascii tablosunda bir degerini ogrene bilirsiniz)
Ogelerin ismini degistirmek: her bir ogenin isimi vardir ve bu isim derledikten sonra ekranda gozukmez sadece kod yazarken kullaniyoruz.Projelerde eklediginiz her oge eklenme sirasina gore isim aliyor mesela ben yeni bir textbox eklersen onun ismi textBox2 olucak (ismini degistirmediginiz taktirde) ismini degistirmek icin Form1.h[Design] sekmesine geciyoruz ve resimdeki yere gidiyoruz (Properties->Design->Name) kismina istediginiz ismi yaza bilirsiniz.Isim bosluk ve ozel karakter iceremez (alt cizgi haric)
ismini degistirdiginiz andan beri
seklinde olucak "Degisken" kismina geliceleri ilerki makalelerde gorucez
Labellar :
Labellar .NET framework-te duz metin iceren ogelerdir ve kullaniciyi bilgilendirme amaclidir.Bir ornek yapalim.Simdi ben Projeme bir buton bir textbox ve bir label ekliyorum.Ve isimlerini degistiriyorum(design sekmesinde ogenin uzerine tiklayinca properties penceresinde ogenin bazi degiskenleri gosteriliyor)Isim degistirmek icin Properties->Design->Name kisimina gidiyoruz.Ben labelin ismini metin ve textboxun ismini girdi olarak degistiriyorum.
Labeli projemizde surukledigimiz zaman varsayilan olarak label1 yazisi cikiyor.Bu labelin text-i dir.Text-i degistirmek icin design sekmesindeki ogenin uzerine 1 kez tikliyoruz ve Properties penceresinde Appearance->Text kisminda yazan yazi labelin texti oluyor ve derleyince ekranda bu yazi gorunuyor.
Not: sadece labelin diyil nerdeyse tum ogelerin text-i vardir(buton textbox checkbox vs) ve az once de belirttigim gibi derleyip calistirinca ekranda bu yazi gorunur.
Eger projemize ekledigimiz labelin textini program calisirken yapmak istiyorsan bazi kodlar yazmamiz gerek.Mesela ben projemdeki butona tikladigimiz zaman labelin textinin textboxtan aldigimiz girdiyle ayni olmasini istiyoruz bunu icin design sekmesindeki butona cift tikliyoruz ve derleyici bizi button1_Click fonksiyonuna goturuyor.Biz de suslu parantezlerin icine su kodu yaziyoruz
Simdi kodu derleyip calistiriyoruz.
Tiklanmadan once :

Bir seyler yazip tikladikta :

Simdi baska bir ornek cozelim ayni onceki gibi textboxtan girdiler alsim ama onune merhaba sonuna da hosgeldiniz eklesin :
Derleyip calistiralim
program acilir acilmaz boyle oluyor :

Bir seyler yazip butona tiklayinca :

Iste gordugunuz gibi arkadaslar labeller kullanici ile "sohbet" icin tasarlanmis ogelerden biridir.
LinkLabel :
Linklabellar label ogesiniz bir baska turudur ve linklabellar kullanici ile "sohbet etmek" yerine tiklanmak icin tasarlanmistir (internette sik sik karsimiza cikan altcizgili ve genellikle mavi olan labeller linklabellardir).Labellar uzerinde yaptigimiz herseyi linklabele de yapa biliriz.
CheckBox :
CheckBoxlar en fazla karsimiza cikan ogelerden biridir ve checkboxlarin isaretlenip isaretlenmedigine bagli olarak farkli olaylar olur.Ve genellikle true ve false dondurur.
Bir kac ornege goz atalim.Diyelimki bir program yapiyorsunuz ve insanlarin hangi dili bildigini ekrana ismiyle birlikte yazdiriyor(isim textboxla alinicak).Baslayalim.Projemize iki checkbox iki label bir textbox ve bir buton ekleyelim.label1-in textine (Properties->Appearance->Text) isim yaziyoruz ve textbox1-in onune getiriyoruz ki kullanici textbox ogesine ne yazicagini bilsin.
Not: pencereli uygulamalara gectiginiz icin goruntu simdi cok onemli.Goze hitab etmezse pek kullanilmaz haberiniz olsun.
Simdilik bunlarin ismini degistirmiyorum.Simdi buton1-in textinde "Gonder" chechbox1-in textine (ogenin ustune 1 kez tikladiktan sonra Properties->Appearance->Text) Ingilizce,Ikincisinin textine (ogenin ustune 1 kez tikladiktan sonra Properties->Appearance->Text) Turkce yaziyoruz.Kodlamaya gecelim "Gonder" buton ogesine cift tikliyoruz ve dereyici biri button1_Click fonksiyonuna goturuyor ve suslu parantezlerin icine yaziyoruz
Ciktilar :

----------Devami cok yakinda ------------
Link : Download Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1 from Official Microsoft Download Center
Serial Key : 6VPJ7-H3CXH-HBTPT-X4T74-3YVY7 (denenmemistir)
Microsoft Visual C++ 2010 express (Bundan boyle "derleyici" ) yuklendikten sonra
New Project-e tikladiktan sonra boyle bir ekran gelicek
Burda "Windows Form Application" butonuna tikladiktan sonra Name kismina projenin ismini yaziyoruz ben projenin ismini "bu_bir_denemedir" koydum Toolbox derleyicide en onemli ogelerden biridir toolbox penceresini yanlislikla kapatirsaniz View->Toolbox kismina tiklayarak aca bilirsiniz ya da Ctrl+Alt+x combosuyla da aca bilirsiniz
Toolbox kismindan istedigimiz ogeyi ekleye biliyoruz
Eklemek icin sadece suruklemeniz yeterli oluyor.Projesi derleyip calistirmak icin F5 tusuna tikliyoruz ya da
"Sag tik->Debug->Start new instance" kismina da tikladigimizda derle ve calistir islemi basliyor Onunuze cikan pencerede OK butonuna tiklayarak derlemeyi baslatiyorsunuz Sadece derlemek icin "Sag tik->Build" butonuna tikliyoruz Mesela ben projeme bir buton bir texbox ekliyorum.TextBoxlar kullanicidan girdi alan ogelerden biridir aslinda bilgisayarda yaza bildiginiz cogu yer bir textbox-dur ve hepsinin farkli bir islevi vardir.Butonlar ama tiklanmak icindir bir butona tikladiginizda bir islem gerceklesir ve ekraninizda sonucu gore bilirsiniz (bazen de goremezsiniz).(toolbox->Common Controls->Button) (toolbox->Common Controls->Textbox)Bir Ogeye default action ekemek icin ogeye cift tiklamaniz yeterli(action - bilgisayarin herhangi bir degisikligine karsi programinizin verdigi tepkiye denir ve bu degisiklik tikama cift tiklama mausenin uzerine gelmesi vs ola bilir) buton icin varsayilan action tek tiklama actionu-dur. Buton ogesine cift tikladiginiz zaman derleyici sizi button1_Click fonksiyonuna goturur ve burda butona tikladiginiz zaman programin yapicagi seyi belirliyosunuz mesela ben ekledigim textbox-ta "Tiklandi" yazisini cikmasini istiyorum bunun icin suslu parantezlerin icerisine bu kodu yaziyoruz
Kod:
this->textBox1->Text = "Tiklandi";
Kod:
[COLOR=Red] System::String^[/COLOR]
Kod:
[COLOR=Lime]
String^ deneme;
char bu = 'A';//char to String^
char *denemedir = "BU BIR DENEME";// char* to String^
deneme = " " + 5 + "bu bir denemedir" + 0.5 + "<>??| " + bu;
for(unsigned short i=0;i[/COLOR][COLOR=Lime]<sizeof(denemedir);i++)
{
deneme += denemedir[i];
}
textBox1->Text = deneme ; [/COLOR]
Tiklamadan once

Butona tikladiktan sonra :

Not: char* ve char turundeki veri ve dizilerdeki veriler asci tablosundaki degerleri aliyor (0-255 arasindaki tam sayi) mesela A yerine 65 yaziyor(googlede ascii table yazarak Klavyeden girilen her bir tusun ascii tablosunda bir degerini ogrene bilirsiniz)
Ogelerin ismini degistirmek: her bir ogenin isimi vardir ve bu isim derledikten sonra ekranda gozukmez sadece kod yazarken kullaniyoruz.Projelerde eklediginiz her oge eklenme sirasina gore isim aliyor mesela ben yeni bir textbox eklersen onun ismi textBox2 olucak (ismini degistirmediginiz taktirde) ismini degistirmek icin Form1.h[Design] sekmesine geciyoruz ve resimdeki yere gidiyoruz (Properties->Design->Name) kismina istediginiz ismi yaza bilirsiniz.Isim bosluk ve ozel karakter iceremez (alt cizgi haric)
ismini degistirdiginiz andan beri
Kod:
this->"Sectiginiz ogenin isimi"->"Degisken" = "Deger";
Labellar :
Labellar .NET framework-te duz metin iceren ogelerdir ve kullaniciyi bilgilendirme amaclidir.Bir ornek yapalim.Simdi ben Projeme bir buton bir textbox ve bir label ekliyorum.Ve isimlerini degistiriyorum(design sekmesinde ogenin uzerine tiklayinca properties penceresinde ogenin bazi degiskenleri gosteriliyor)Isim degistirmek icin Properties->Design->Name kisimina gidiyoruz.Ben labelin ismini metin ve textboxun ismini girdi olarak degistiriyorum.
Labeli projemizde surukledigimiz zaman varsayilan olarak label1 yazisi cikiyor.Bu labelin text-i dir.Text-i degistirmek icin design sekmesindeki ogenin uzerine 1 kez tikliyoruz ve Properties penceresinde Appearance->Text kisminda yazan yazi labelin texti oluyor ve derleyince ekranda bu yazi gorunuyor.
Not: sadece labelin diyil nerdeyse tum ogelerin text-i vardir(buton textbox checkbox vs) ve az once de belirttigim gibi derleyip calistirinca ekranda bu yazi gorunur.
Eger projemize ekledigimiz labelin textini program calisirken yapmak istiyorsan bazi kodlar yazmamiz gerek.Mesela ben projemdeki butona tikladigimiz zaman labelin textinin textboxtan aldigimiz girdiyle ayni olmasini istiyoruz bunu icin design sekmesindeki butona cift tikliyoruz ve derleyici bizi button1_Click fonksiyonuna goturuyor.Biz de suslu parantezlerin icine su kodu yaziyoruz
Kod:
//once textboxdaki texti aliyoruz
const System::String^ text = this->girdi->Text; /* az once textboxun ismini "girdi" olarak degistirmistik */
this->metin->Text = text; // labein ismini de "metin" olarak degistirmistik
/*
su kod "girdi" textbox-unun Text degiskenin degerini text degiskenine atiyor.
ve bu degiskeni de "metin" labelinin Text degiskenine atiyor ve labelin Texti degistigi icin ekranda da bu yazi gozukuyor.
*/
Tiklanmadan once :

Bir seyler yazip tikladikta :

Simdi baska bir ornek cozelim ayni onceki gibi textboxtan girdiler alsim ama onune merhaba sonuna da hosgeldiniz eklesin :
Kod:
String^ text = "Merhaba " + this->girdi->Text + " Hosgeldiniz";
/*daha once anlattigim gibi String^ turuyle islem yapmak cok kolaydir +(arti) operatorule degisik veri turunde olan degiskenleri String^ turune kolaylikla cebiriyoruz.Bosluk koymayi da unutmayalim yoksa hepsini bitisik yazar*/
this->metin->Text = text; // text degiskenin degerini labelin Text degiskenine atadik
program acilir acilmaz boyle oluyor :

Bir seyler yazip butona tiklayinca :

Iste gordugunuz gibi arkadaslar labeller kullanici ile "sohbet" icin tasarlanmis ogelerden biridir.
LinkLabel :
Linklabellar label ogesiniz bir baska turudur ve linklabellar kullanici ile "sohbet etmek" yerine tiklanmak icin tasarlanmistir (internette sik sik karsimiza cikan altcizgili ve genellikle mavi olan labeller linklabellardir).Labellar uzerinde yaptigimiz herseyi linklabele de yapa biliriz.
CheckBox :
CheckBoxlar en fazla karsimiza cikan ogelerden biridir ve checkboxlarin isaretlenip isaretlenmedigine bagli olarak farkli olaylar olur.Ve genellikle true ve false dondurur.
Bir kac ornege goz atalim.Diyelimki bir program yapiyorsunuz ve insanlarin hangi dili bildigini ekrana ismiyle birlikte yazdiriyor(isim textboxla alinicak).Baslayalim.Projemize iki checkbox iki label bir textbox ve bir buton ekleyelim.label1-in textine (Properties->Appearance->Text) isim yaziyoruz ve textbox1-in onune getiriyoruz ki kullanici textbox ogesine ne yazicagini bilsin.
Not: pencereli uygulamalara gectiginiz icin goruntu simdi cok onemli.Goze hitab etmezse pek kullanilmaz haberiniz olsun.
Simdilik bunlarin ismini degistirmiyorum.Simdi buton1-in textinde "Gonder" chechbox1-in textine (ogenin ustune 1 kez tikladiktan sonra Properties->Appearance->Text) Ingilizce,Ikincisinin textine (ogenin ustune 1 kez tikladiktan sonra Properties->Appearance->Text) Turkce yaziyoruz.Kodlamaya gecelim "Gonder" buton ogesine cift tikliyoruz ve dereyici biri button1_Click fonksiyonuna goturuyor ve suslu parantezlerin icine yaziyoruz
Kod:
if(checkBox1->Checked && checkBox2->Checked)
{
this->label2->Text = this->textBox1->Text +" "+ checkBox1->Text + " " + checkBox2->Text + " dillerini biliyor";
}
else if(checkBox1->Checked && !checkBox2->Checked )
{
this->label2->Text = this->textBox1->Text +" "+ checkBox1->Text + " dilini biliyor";
}
else if(!checkBox1->Checked && checkBox2->Checked )
{
this->label2->Text = this->textBox1->Text +" "+ checkBox2->Text + " dilini biliyor";
}
else
{
this->label2->Text = this->textBox1->Text + " dil bilmiyor";
}

----------Devami cok yakinda ------------
Son düzenleme:
