<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CETURK &#187; Visual Basic</title>
	<atom:link href="http://www.ceturk.com/kategori/programlama/visual-basic/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ceturk.com</link>
	<description>Türkiye&#039;nin Bilişim Platformu</description>
	<lastBuildDate>Wed, 08 Sep 2010 08:53:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Bubble Sort (Kabarcık Sıralaması) Uygulaması</title>
		<link>http://www.ceturk.com/programlama/bubble-sort-kabarcik-siralamasi-uygulamasi.html</link>
		<comments>http://www.ceturk.com/programlama/bubble-sort-kabarcik-siralamasi-uygulamasi.html#comments</comments>
		<pubDate>Tue, 15 Dec 2009 19:40:11 +0000</pubDate>
		<dc:creator>Yönetici</dc:creator>
				<category><![CDATA[Download]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Örnek Kodlar]]></category>
		<category><![CDATA[Bubble Sort]]></category>
		<category><![CDATA[Mehmet Güzel]]></category>
		<category><![CDATA[Visual Basic örnek]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=4896</guid>
		<description><![CDATA[- Kullanıcının gireceği iki değer arasında ve istenen miktarda  rasgele sayı üretir.
-  Üretilen rasgele sayıları artan ve azalan sırada(Bubble Sort mantığına göre) sıralar.
- Gecikme Süresi artırılıp üretilen değerler daha iyi gözlemlenebilinir.
Not:Girilecek değerler Integer ile sınırlıdır.
Ekleyen Üyemiz :   Mehmet GÜZEL
]]></description>
			<content:encoded><![CDATA[<p>- Kullanıcının gireceği iki değer arasında ve istenen miktarda  rasgele sayı üretir.<br />
-  Üretilen rasgele sayıları artan ve azalan sırada(Bubble Sort mantığına göre) sıralar.<br />
- Gecikme Süresi artırılıp üretilen değerler daha iyi gözlemlenebilinir.<br />
Not:Girilecek değerler Integer ile sınırlıdır.</p>
<p>Ekleyen Üyemiz :  <strong> Mehmet GÜZEL</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/programlama/bubble-sort-kabarcik-siralamasi-uygulamasi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sistem Bilgisi(HDD ID, CPU ID ve CPU Özellikleri)</title>
		<link>http://www.ceturk.com/programlama/sistem-bilgisihdd-id-cpu-id-ve-cpu-ozellikleri.html</link>
		<comments>http://www.ceturk.com/programlama/sistem-bilgisihdd-id-cpu-id-ve-cpu-ozellikleri.html#comments</comments>
		<pubDate>Tue, 15 Dec 2009 19:38:46 +0000</pubDate>
		<dc:creator>Yönetici</dc:creator>
				<category><![CDATA[Download]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Örnek Kodlar]]></category>
		<category><![CDATA[Mehmet Güzel]]></category>
		<category><![CDATA[Sistem bilgisi]]></category>
		<category><![CDATA[Visual Basic örnek]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=4900</guid>
		<description><![CDATA[Bu ufak program sayesinde
·Bilgisayar Adı
·Kullanıcı Adı
·Local IP
·Hardisk Seri No
·CPU Seri No
·CPU özelliklerini öğrenebilirsiniz.
Yararlı olması dileğiyle…
Ekleyen Üyemiz :    Mehmet GÜZEL
]]></description>
			<content:encoded><![CDATA[<p>Bu ufak program sayesinde<br />
·Bilgisayar Adı<br />
·Kullanıcı Adı<br />
·Local IP<br />
·Hardisk Seri No<br />
·CPU Seri No<br />
·CPU özelliklerini öğrenebilirsiniz.</p>
<p>Yararlı olması dileğiyle…</p>
<p>Ekleyen Üyemiz :    <strong>Mehmet GÜZEL</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/programlama/sistem-bilgisihdd-id-cpu-id-ve-cpu-ozellikleri.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Aktif Yazıcının Değiştirilmesi</title>
		<link>http://www.ceturk.com/programlama/visual-basic/aktif-yazicinin-degistirilmesi.html</link>
		<comments>http://www.ceturk.com/programlama/visual-basic/aktif-yazicinin-degistirilmesi.html#comments</comments>
		<pubDate>Sat, 07 Nov 2009 23:09:15 +0000</pubDate>
		<dc:creator>Yönetici</dc:creator>
				<category><![CDATA[Download]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Örnek Kodlar]]></category>
		<category><![CDATA[Aktif Yazıcının Değiştirilmesi]]></category>
		<category><![CDATA[ibrahim]]></category>
		<category><![CDATA[Visual Basic örnek]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=4062</guid>
		<description><![CDATA[Bir Visual Basic Uygulaması
Ekleyen Üyemiz :   ibrahim 
]]></description>
			<content:encoded><![CDATA[<p>Bir Visual Basic Uygulaması</p>
<p>Ekleyen Üyemiz :  <strong> ibrahim </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/programlama/visual-basic/aktif-yazicinin-degistirilmesi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>İnternet Bağlantısını Kontrol Etme</title>
		<link>http://www.ceturk.com/programlama/internet-baglantisini-kontrol-etme.html</link>
		<comments>http://www.ceturk.com/programlama/internet-baglantisini-kontrol-etme.html#comments</comments>
		<pubDate>Sat, 07 Nov 2009 23:05:11 +0000</pubDate>
		<dc:creator>Yönetici</dc:creator>
				<category><![CDATA[Download]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Örnek Kodlar]]></category>
		<category><![CDATA[ibrahim]]></category>
		<category><![CDATA[İnternet Bağlantısını Kontrol Etmek]]></category>
		<category><![CDATA[Visual Basic örnek]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=4060</guid>
		<description><![CDATA[Bir Visual Basic Uygulama
Ekleyen Üyemiz :   ibrahim
]]></description>
			<content:encoded><![CDATA[<p>Bir Visual Basic Uygulama</p>
<p>Ekleyen Üyemiz :  <strong> ibrahim</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/programlama/internet-baglantisini-kontrol-etme.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>El Yazisini Taniyan Program</title>
		<link>http://www.ceturk.com/programlama/el-yazisini-taniyan-program.html</link>
		<comments>http://www.ceturk.com/programlama/el-yazisini-taniyan-program.html#comments</comments>
		<pubDate>Fri, 06 Nov 2009 21:33:19 +0000</pubDate>
		<dc:creator>Yönetici</dc:creator>
				<category><![CDATA[Download]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Örnek Kodlar]]></category>
		<category><![CDATA[El Yazısını Tanıma]]></category>
		<category><![CDATA[Levent YILDIZ]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=4006</guid>
		<description><![CDATA[Test asamasindadir.Yorumlarinizi bekliyorum.
Ekleyen Üyemiz :  Levent Yıldız
]]></description>
			<content:encoded><![CDATA[<p>Test asamasindadir.Yorumlarinizi bekliyorum.</p>
<p>Ekleyen Üyemiz :  <strong>Levent Yıldız</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/programlama/el-yazisini-taniyan-program.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Outlook Express Kullanarak Mail Göndermek.</title>
		<link>http://www.ceturk.com/programlama/outlook-express-kullanarak-mail-gondermek.html</link>
		<comments>http://www.ceturk.com/programlama/outlook-express-kullanarak-mail-gondermek.html#comments</comments>
		<pubDate>Fri, 06 Nov 2009 21:26:04 +0000</pubDate>
		<dc:creator>Yönetici</dc:creator>
				<category><![CDATA[Download]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Örnek Kodlar]]></category>
		<category><![CDATA[eMail Göndermek]]></category>
		<category><![CDATA[ePosta Göndermek]]></category>
		<category><![CDATA[Levent YILDIZ]]></category>
		<category><![CDATA[Visual Basic örnek]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=4000</guid>
		<description><![CDATA[Outlook Express kullanarak Mail gondermek.Gönderdiginiz email
Sent items&#8217;da gözukecektir.
Ekleyen Üyemiz :   Levent YILDIZ 
]]></description>
			<content:encoded><![CDATA[<p>Outlook Express kullanarak Mail gondermek.Gönderdiginiz email<br />
Sent items&#8217;da gözukecektir.</p>
<p>Ekleyen Üyemiz :  <strong> Levent YILDIZ </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/programlama/outlook-express-kullanarak-mail-gondermek.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FileStream, StreamReader, StreamWriter Kullanımları</title>
		<link>http://www.ceturk.com/programlama/filestream-streamreader-streamwriter-kullanimlari.html</link>
		<comments>http://www.ceturk.com/programlama/filestream-streamreader-streamwriter-kullanimlari.html#comments</comments>
		<pubDate>Wed, 04 Nov 2009 13:23:23 +0000</pubDate>
		<dc:creator>Yönetici</dc:creator>
				<category><![CDATA[Download]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Örnek Kodlar]]></category>
		<category><![CDATA[FileStream]]></category>
		<category><![CDATA[oneylabs]]></category>
		<category><![CDATA[StreamReader]]></category>
		<category><![CDATA[StreamWriter]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=3546</guid>
		<description><![CDATA[Visual basic.net te filestream, streamreader, streamwriter kullanımları ile ilgili örnek
Ekleyen Üyemiz : oneylabs 
]]></description>
			<content:encoded><![CDATA[<p>Visual basic.net te filestream, streamreader, streamwriter kullanımları ile ilgili örnek</p>
<p>Ekleyen Üyemiz : <strong>oneylabs </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/programlama/filestream-streamreader-streamwriter-kullanimlari.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Basic &#8211; 4</title>
		<link>http://www.ceturk.com/programlama/visual-basic-4.html</link>
		<comments>http://www.ceturk.com/programlama/visual-basic-4.html#comments</comments>
		<pubDate>Sat, 12 Feb 2005 07:41:07 +0000</pubDate>
		<dc:creator>Levent Yildiz</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Levent YILDIZ]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=990</guid>
		<description><![CDATA[Visual Basic&#8217;de bize hazır olarak verilen ve geliştireceğimiz yazılımlar içindeki işlemlerimizi kolaylaştıran fonksiyonlar mevcuttur.
Fonksiyonu kısaca şöyle tanımlayabiliriz; fonksiyona bir değer göndeririz ve fonksiyon da gerekli işlemleri yaparak bize sonucu gönderir.
Aşağıda bir fonksiyon örneği mevcuttur.
[25,15] -&#62;Topla (25 + 15) -&#62; [40]
Burada 3 aşama mevcuttur.
1-25 ile 15 değerleri Topla isimli fonksiyona gönderilir.
2-Topla fonksiyonu bu değerleri toplar.
3-Sonucu bize [...]]]></description>
			<content:encoded><![CDATA[<p>Visual Basic&#8217;de bize hazır olarak verilen ve geliştireceğimiz yazılımlar içindeki işlemlerimizi kolaylaştıran fonksiyonlar mevcuttur.<br />
Fonksiyonu kısaca şöyle tanımlayabiliriz; fonksiyona bir değer göndeririz ve fonksiyon da gerekli işlemleri yaparak bize sonucu gönderir.<br />
Aşağıda bir fonksiyon örneği mevcuttur.</p>
<p>[25,15] -&gt;Topla (25 + 15) -&gt; [40]</p>
<p>Burada 3 aşama mevcuttur.<br />
1-25 ile 15 değerleri Topla isimli fonksiyona gönderilir.<br />
2-Topla fonksiyonu bu değerleri toplar.<br />
3-Sonucu bize geri göderir.<br />
Lafı fazla uzatmadan hemen gerçek bir örneğe geçelim.<br />
İlk olarak Abs fonksiyonunu ele alalım.Bu fonksiyon gönderdiğiniz sayının mutlak değerini dödürür.<br />
Standart bir exe projesi açın,Form1’e text1 ismi ile bir textbox ve command1 ismi ile bir commandbutton ekleyin.<br />
Formun kod kısmına aşağıdaki kodu yapıştırın.<br />
<code><br />
Private Sub Command1_Click()<br />
Text1.text=Abs(Text1.text)<br />
End Sub<br />
</code><br />
Programı çalıştırın, textbox’a –1 değerini girin ve command buton’a basın.Evet –1 olarak girdiğiniz değer 1 oldu değil mi? Evet artık fonksiyonları nasıl test edeceğimizi öğrendiğimize göre diğer fonksiyonlara geçebiliriz.<br />
<strong>Asc</strong> : Gönderdiğiniz karakterin ASCII değerini döndürür.<br />
<strong>Chr </strong>: Gönderdiğiniz ASCII değerini karakter cinsinden döndürür.<br />
<strong>Cbool</strong> : Gönderdiğiniz değeri boolean veri tipine döndürür.<br />
<strong>Cbyte</strong> : Gönderdiğiniz değeri byte veri tipine döndürür.<br />
<strong>Ccur</strong> : Gönderdiğiniz değeri currency veri tipine döndürür.<br />
<strong>Cdate</strong> : Gönderdiğiniz değeri tarih veri tipine döndürür.<br />
<strong>Cdbl</strong> : Gönderdiğiniz değeri double veri tipine döndürür.<br />
<strong>Date</strong> : Herhangi bir değer göndermenize gerek kalmadan size sistem tarihini döndürür.<br />
<strong>FormatCurrency</strong> : Gönderdiğiniz değeri para birimi yazımı şeklinde döndürür.<br />
<strong>Lcase</strong> : Gönderdiğiniz metni küçük harfe çevirir ve döndürür.<br />
<strong>Left</strong> : Gönderdiğiniz metnin sol tarafından istediğiniz sayıda harfi döndürür.<br />
<strong>Len</strong> : Gönderdiğiniz mernin kaç harften oluştuğunu döndürür.<br />
<strong>Ucase </strong>: Gönderdiğiniz merni büyük harfe çevirir ve döndürür.<br />
<strong>Right</strong> : Gönderdiğiniz metnin sağ tarafından istediğiniz sayıda harfi döndürür.<br />
Başlangıç olarak yukarıdaki fonksiyonlar yeterli olacaktır.Derslerimiz ilerledikçe ve örneklerimiz çoğaldıkça diğer fonksiyonları da kullanacağız.<br />
Şimdi isterseniz biraz da standart nesnelerin özelliklerine değinelim</p>
<h3>Textbox (Metin Kutusu) &#8211; Özellikler</h3>
<p><strong>Alignment</strong><br />
Alabileceği değerler : 0 (Left Justify) , 1 (Right Justify), 2(Center)<br />
Metinkutusu içine yazılan metnin sola , sağa veya ortaya hizalanması için ayarlanması gereken özelliktir.<br />
Eğer bu değer 1 yapılırsa metinkutusu içine yazılan metin sağa hizalanır.<br />
<strong>Appearance</strong><br />
Alabileceği değerler : 0 (Flat), 1(3D)<br />
Metinkutusunun ekranda düz veya 3 boyutlu olarak görünmesi için ayarlanması gereken özelliktir.<br />
<strong>Backcolor</strong><br />
Alabileceği değerler : Sisteminizin size sunduğu renk paletindeki renk değerleri<br />
Metinkutusunun arkaplan renginin belirlenmesi için ayarlanması gereken özelliktir.<br />
<strong>BorderStyle</strong><br />
Alabileceği değerler : 0 (None), 1(Fixed Single)<br />
Metinkutusunun çerçevesinin görüntülenip görüntülenmesi için ayarlanması gereken özelliktir.<br />
<strong>CausesValidation</strong><br />
Alabileceği değerler : True,False<br />
Metinkutusu değerinin değiştiğinde Validate event’inin tetiklenip tetiklenmeyeceğini belirten özelliktir.<br />
<strong>Enabled</strong><br />
Alabileceği değerler : True,False<br />
True değeri atanmışşa metinkutusuna erişebilir ve değerini değiştirebilirsiniz.False değeri atanmışsa<br />
sadece metinkutusu içindeki değeri görebilirsiniz.<br />
<strong>Font</strong><br />
Alabileceği değerler : Sisteminizin size sunduğu font değerleri<br />
Metinkutusu içinde kullanılacak font değerini belirler.<br />
<strong>ForeColor</strong><br />
Alabileceği değerler : Sisteminizin size sunduğu renk paletindeki renk değerleri<br />
Metinkutusunun yazı renginin belirlenmesi için ayarlanması gereken özelliktir.<br />
<strong>Height</strong><br />
Metinkutusunun yüksekliğini belirten/ayarlayan özelliktir.<br />
<strong>Left</strong><br />
Metinkutusunun formun en sağ kısmından itibaren uzaklığını belirten/ayarlayan özelliktir.<br />
<strong>Locked</strong><br />
Alabileceği değerler : True,False<br />
True ise metinkutusu içinde imleç ile gezinebilir fakat değeri değiştiremezsiniz.False ise istediğiniz<br />
değişiklikleri yapabilirsiniz.<br />
<strong>MaxLength</strong><br />
Metinkutusu içine yazabileceğiniz maksimum karakter sayısını belirten/ayarlayan özelliktir.<br />
Eğer 0 değeri girilirse metinkutusuna istediğiniz kadar giriş yapabilirsiniz.<br />
<strong>Multiline</strong><br />
Alabileceği değerler : True,False<br />
True ise enter tuşuna bastığınızda bir alt satıra geçer,False ise geçmez.<br />
<strong>PasswordChar</strong><br />
Bu özelliğe bir değer atadığınızda metinkutusuna hangi karakteri girerseniz girin PasswordChar’a atadığınız<br />
karakter gösterilir.Bu özellik daha çok şifre girişlerinde kullanılır.<br />
<strong>ScrollBars</strong><br />
Alabileceği değerler : 0(None), 1(Horizontal), 2(Vertical), 3(Both)<br />
Metinkutusunda ne tür kaydırma çubuklarının gösterileceğini belirtir/ayarlar.<br />
<strong>Text</strong><br />
Metinkutusu içerisinde yazan metin değerini belirten/ayarlayan özelliktir.<br />
<strong>Top</strong><br />
Metinkutusunun formun en üst kısmından itibaren uzaklığını belirten/ayarlayan özelliktir.<br />
<strong>Width</strong><br />
Metinkutusunun genişliğini belirten/ayarlayan özelliktir.</p>
<h3><strong>Olaylar</strong></h3>
<p><strong>Click</strong><br />
Metinkutusuna tıklandığında tetiklenen olaydır.<br />
<strong>GotFocus</strong><br />
İmleç metinkutusuna konumlandığında tetiklenen olaydır.<br />
<strong>Keydown</strong><br />
İmleç metinkutusu üzerinde iken bir tuşa basıldığı anda tetiklenen olaydır.<br />
<strong>Keypress</strong><br />
İmleç metinkutusu üzerinde iken bir tuşa basıldığı anda Keydown’dan sonra tetiklenen olaydır.<br />
<strong>Keyup</strong><br />
İmleç metinkutusu üzerinde iken bir tuşa basılıp bırakıldığı anda tetiklenen olaydır.<br />
<strong>Lostfocus</strong><br />
İmleç metinkutusu’nu terkettiğinde tetiklenen olaydır.<br />
<strong>Mousedown</strong><br />
Fare ile metinkutusuna tıklandığında tetiklenen olaydır.(Mouse’un hangi tuşu ile tıklandığını<br />
Button değerinden anlayabilirsiniz.)<br />
<strong>Mousemove</strong><br />
Fare metinkutusu üzerinde gezindiğinde tetiklenen olaydır.<br />
<strong>Mouseup</strong><br />
Fare ile metinkutusu’na tıklanıp bırakıldığında tetiklenen olaydır.</p>
<h3>Metodlar</h3>
<p><strong>Setfocus</strong><br />
İmlecin metinkutusu üzerine konumlanmasını sağlar.<br />
<strong>Zorder</strong><br />
Metinkutusunun ön veya arka plana atılmasını sağlar.<br />
Eveeeet yukarıda anlattığım fonksiyon ve obje özellik, olaylarının lab projesini indirmek için <a href="http://www.ceturk.com/dosyalar/ders/VbLab1.rar" target="_blank"><strong>tıklayınız.</strong></a><br />
Bir sonraki dersimizde veritipleri değişken tanımlama , fonksiyon ve sub kullanma konularına değineceğiz.</p>
<p>Levent YILDIZ<br />
lyildiz@ceturk.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/programlama/visual-basic-4.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Basic &#8211; 5</title>
		<link>http://www.ceturk.com/programlama/visual-basic-5.html</link>
		<comments>http://www.ceturk.com/programlama/visual-basic-5.html#comments</comments>
		<pubDate>Sat, 12 Feb 2005 07:32:29 +0000</pubDate>
		<dc:creator>Levent Yildiz</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Levent YILDIZ]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=983</guid>
		<description><![CDATA[Bu dersimizde veritiplerinden, değişken tanımlamadan, fonksiyon ve sub kullanımından bahsedeceğiz. İlk olarak veritiplerinden bahsedelim.Bazılarınız -“veri veridir kardeşim, neden sınıflandırıyoruz?” diye sorabilir. Veritiplerini ayırmamızın en büyük sebeplerinden biri hafızayı en optimal şekilde kullanabilmemiz içindir. Örnek olarak bir arabanın yapacağı maximum sürat verisi ile bir adres verisini ele alalım. Bir araba max 3 haneli bir hız yapar.Dolayısı [...]]]></description>
			<content:encoded><![CDATA[<p>Bu dersimizde veritiplerinden, değişken tanımlamadan, fonksiyon ve sub kullanımından bahsedeceğiz. İlk olarak veritiplerinden bahsedelim.Bazılarınız -“veri veridir kardeşim, neden sınıflandırıyoruz?” diye sorabilir. Veritiplerini ayırmamızın en büyük sebeplerinden biri hafızayı en optimal şekilde kullanabilmemiz içindir. Örnek olarak bir arabanın yapacağı maximum sürat verisi ile bir adres verisini ele alalım. Bir araba max 3 haneli bir hız yapar.Dolayısı ile hafızada arabanın max. Hız verisi için 3 haneli bir sayı tutacağız. Bir adres bilgisi ise en kötü ihtimalle düşündüğümüzü varsayarsak 200 karakteri aşmayacaktır.Şimdi bir düşünelim;<br />
İki veri için de hafızada aynı büyüklükte yer ayırmak biraz savurganlık olmaz mı? Kesinlikle. Şimdi bu ayrımı yapabilmemiz için visual basic’in bize sunmuş olduğu veri tiplerine bir göz atalım.</p>
<table border="1" cellspacing="0" cellpadding="3" width="100%" align="left">
<tbody>
<tr bgcolor="#cccccc">
<td><strong>Veritipi ismi</strong></td>
<td><strong>Alabileceği değerler</strong></td>
</tr>
<tr>
<td><strong>Boolean</strong></td>
<td>0/1 (False/True)</td>
</tr>
<tr>
<td><strong>Byte</strong></td>
<td>0-255</td>
</tr>
<tr>
<td><strong>Double</strong></td>
<td>(-1.79769313486232e308) – (-4.94065645841247e-324) (+4.94065645841247e-324) – (+1.79769313486232e308)</td>
</tr>
<tr>
<td><strong>Integer</strong></td>
<td>(-32768) – (32767)</td>
</tr>
<tr>
<td><strong>Long</strong></td>
<td>(-2,147,483,648) – (2,147,483,647)</td>
</tr>
<tr>
<td><strong>Single</strong></td>
<td>(-3.402823e38) – (-1.401298e-45) (+1.401298e-45) – (+3.402823e38)</td>
</tr>
<tr>
<td><strong>String</strong></td>
<td>2 milyar karakter.</td>
</tr>
<tr>
<td><strong>Currency</strong></td>
<td>(-922,337,203,685,477.5808) – (+922,337,203,685,477.5807)</td>
</tr>
<tr>
<td><strong>Date</strong></td>
<td>Ocak 1, 100 &#8211; Aralık 31, 9999</td>
</tr>
<tr>
<td><strong>Variant </strong></td>
<td>Date + Double + String + Error ve Null değerlerini taşıyabilen Joker bir değişken</td>
</tr>
</tbody>
</table>
<p>Sıra geldi bu değişkenleri kullanmaya. Standart bir exe projesi açın.Formun kod kısmına geçin. Değişken tanımlama Dim,Redim,Private,Public,Global,Static anahtar sözcükleri ile yapılmaktadır ve yazımı:<br />
<code>Dim değişken_ismi as veri_tipi</code><br />
şeklindedir.Şimdi 2.Lab’ı indirip bu değişkenleri nasıl kullandığımızı görelim. Formun yüklenmesinde (form_load sub’i calisir) gördüğünüz üzere değişkenlerimizi tanımladık, herbir değişkene değerler atayıp formun üzerine yazdırdık. Form yüklendikten sonra “Hatalı Atama Yap” butonuna bastığınızda ise vb Overflow hatası verecektir.Bunun sebebi max 255 değer alabilecek byte veri tipine 260 değerini atamaya çalışmamızdır. Lab2 de farkettiyseniz bytArabaninMaxHizi değişkeni iki kere tanımlanmıştır.Bunun sebebi değişkenlerin tanımlandıkları yerlerle alakalıdır. Aslında bunu en iyi aşağıdaki şema açıklar.<br />
<img class="alignnone size-full wp-image-987" src="http://www.ceturk.com/images/vb5-11.gif" alt="vb5-11" width="328" height="335" /><br />
Şemada standart bir exe projesinin kod bölümünü görmektesiniz.Bütün kod sayfasının başında<br />
Dim dteDogumGunum as Date değişken tanımlaması bulunmaktadır.Şimdi olayı biraz daha karmaşıklaştırıyoruz.<br />
-dteDogumGunum değişkeninin değeri form unload edilene kadar yani biz formu kapatana kadar hafızada kalacak ve formun içinden herhangi bir program bloğundan (sub veya function) erişilebilecektir.<br />
-strDegisken1 değişkeninin değeri sadece Command1_Click sub’ı süresince hafızada tutulacaktır.<br />
-intA değişkeninin değeri de sadece Command2_Click sub’ı süresince hafızada tutulacaktır.<br />
Peki ya Private ve Public ? Eğer bir formun kod sayfasının en üstüne (General Declerations)<br />
Public strDeğişken1 as string yazarsanız proje’de herhangi bir bölümden formismi.strDeğişken1 yazarak değişkene erişebilirsiniz.<br />
Bunu daha iyi anlamak için 3.Lab’ı indirip çalıştırmanız yeterli olacaktır.<br />
İlerleyen derslerimizde örneklerle daha detaylı açıklamalar yapacağız.<br />
Simdi gelelim Sub ve Functionlara.Sub ve Functionlar program bloklarıdır.Belli bir iş için biraraya getirdiğimiz kodu içerirler.Örnek olarak Toplama işlemi için Toplama Sub’ına istegiğimiz değerleri gönderir ve toplatırız.Dolayısı ile projede herhangi bir yerde toplama işlemini kullanmamız gerektiğinde bu Sub’i çağırabilir tekrar kodlama yapmaktan kurtulabiliriz.<br />
Sublar iki bölüme ayrılırlar.Form objelerinin olayları tetiklendiğinde çalıştırdıkları sublar ve kullanıcının kendi yazdığı sublar.Orneğin Private Sub Command1_Click sub’ı command1 objesinin click olayı tetiklendiğinde vb tarafından otomatik olarak çalıştırılır.<br />
Sub’ın Function dan farkı nedir? Sub’ı çağırdığınızda vb o sub içindeki kodu çalıştırır ve End Sub ile işlemi bitirir.<br />
Functionlara hatırlarsanız bir önceki dersimizde biraz değinmiştik.Tekrar yapmamız gerekirse functionlar yaptıkları işlemler sonucunda çağırıldıkları yere bir sonuç, bir değer döndürürler.<br />
Değişken tanımlamalarda olduğu gibi fonksiyon ve sub larında tanımalama sınırları mevcuttur ve bu sınırlar Private,Public,Friend anahtar kelimeleriyle belirlenir.<br />
<code><br />
Private Sub MerhabaDunya()<br />
Msgbox “Merhaba Dunya”<br />
End Sub<br />
Public Sub HeryerdenErisebilirsin()<br />
Msgbox “Eriştin”<br />
End Sub<br />
</code><br />
Projede çok fazla public değişken sub veya function kullanırsanız bu hafızayı gereğinden fazla meşgul eder ve performansı etkiler.Bunu engellemenin bir yolu da sub veya function ın içine parametre gödermek ile olur.<br />
<code><br />
Private Sub ParametreleriToplaVeGoster(intParam1 as integer,intParam2 as integer)<br />
Msgbox intParam1+intParam2<br />
End Sub<br />
</code><br />
Bir sonraki dersimizde modüller, classmodüller konularına değineceğiz.<br />
Lab2 ve lab3 &#8216;ü indirmek için <a href="http://www.ceturk.com/dosyalar/ders/vbLab2ve3.rar" target="_blank">Tıklayınız.</a></p>
<p>Levent YILDIZ<br />
lyildiz@ceturk.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/programlama/visual-basic-5.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VB ile GIS(Coğrafi Bilgi Sistemleri) Uygulaması</title>
		<link>http://www.ceturk.com/programlama/vb-ile-giscografi-bilgi-sistemleri-uygulamasi.html</link>
		<comments>http://www.ceturk.com/programlama/vb-ile-giscografi-bilgi-sistemleri-uygulamasi.html#comments</comments>
		<pubDate>Fri, 07 May 2004 07:47:56 +0000</pubDate>
		<dc:creator>Kurtman Çelik</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Mehmet Güzel]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=993</guid>
		<description><![CDATA[Merhaba Arkadaşlar,
Hepinizin bildiği gibi GIS(Geograghic Information System=Çoğrafi Bilgi Sistemleri) uygulamaları; özellikle Kent Bilgi Sistemleri günümüzün en populer uygulamaları oldu ve olmaya da devam ediyor. Bunun yanında mobil uygulamalar(GPS ile), Araç takibi(Mobil ekip takibi),
İnteraktif olarak sözel veriden sayısal veriye erişim(Adres bilgi sistemleri) popüler olmaya başladı. Bu tür uygulamaların ileri seviyesi DirectX yada OpenGL ile yer şekillerini [...]]]></description>
			<content:encoded><![CDATA[<p>Merhaba Arkadaşlar,<br />
Hepinizin bildiği gibi GIS(Geograghic Information System=Çoğrafi Bilgi Sistemleri) uygulamaları; özellikle Kent Bilgi Sistemleri günümüzün en populer uygulamaları oldu ve olmaya da devam ediyor. Bunun yanında mobil uygulamalar(GPS ile), Araç takibi(Mobil ekip takibi),<br />
İnteraktif olarak sözel veriden sayısal veriye erişim(Adres bilgi sistemleri) popüler olmaya başladı. Bu tür uygulamaların ileri seviyesi DirectX yada OpenGL ile yer şekillerini canlandırılması ve sanki orda geçiyormuş gibi her şeyin simüle edilmesi.<br />
Bu makalemizde Visual Basic ile MapInfo uygulamasını haberleştirerek, MapInfo aracılığıyla temel GIS(Geograghic Information System) uygulamasını yapacağız. MapBasic komutları sayesinde halihazır görüntüleri seçme, yakalama, büyütme ve küçültme işlemlerini yapacağız. Ayrıca workspace dosyası yükleme ve bu workspace dosyası üzerinde bulunan bir parseli bulma ve gösterme, herhangi bir işlemeye ait, ada ve parseli bilinen bir binaya grafik ekranda ulaşabileceğiz.</p>
<p>Mapinfo uygulaması için kullandığımız üç komut var. Bunlar DO, EVAL, FETCH dir.<br />
DO bir komutu çalıştırmak herhangi bir işlem yaptırmak için kullanılır.<br />
EVAL mapinfo&#8217;dan bir değer almak için kullanılır.<br />
FETCH kayıtlar arasında gezmek, belirli kayıtları seçmek için kullanılır.<br />
Bu uygulamamızda MapInfo&#8217;da hazırladığımız workspace göstermek, üzerinde işlem yapmak için Picture nesnesi kullanacağız.<br />
Bunun için aşağıdaki komutları kullanacağız:<br />
<code><br />
MI.do "Set Window Info Parent " &amp; frmGRAFIK.hwnd 'Bağlantının yapılacağı form<br />
MI.do "Set Application Window " &amp; frmGRAFIK.Picture1.hwnd<br />
'Tüm işlemlerin yapılacağı nesne(Picture)<br />
</code><br />
<code><br />
MI.do "Set Next Document Parent " &amp; frmGRAFIK.Picture1.hwnd &amp; " Style 1"<br />
'MapInfo için picture nesnesini kullanacağımız belirtiyoruz<br />
</code><br />
Tüm bağlantı ve uygulamaları aşağıdaki kodlarla yapacağız.<br />
Tüm bağlantı ve kodları elimden geldiğince anlaşılabilir bir şekilde açıklamaya çalıştım.<br />
Tüm soru ve sorunlarınız, takıldığınız yerler için bana e-mail ile ulaşabilirsiniz.<br />
<code><br />
Global MI As Object 'MapInfo nesnesi<br />
Global theResponder As Object 'MapInfo ile VB arasındaki haberleşmeyi sağlayacak nesnemiz<br />
Global kosuyor As Boolean<br />
Dim strfile1 As String, strfile2 As String, strfile3 As String<br />
Dim strSQL as string<br />
</code><br />
<code><br />
'Parsel göstermek için kullanılacak<br />
Sub Parsel_Goster(pID As String, pADA As Long, pPARSEL As Long)<br />
'Gösterilecek parselin İşletme ID si, Adası ve parseli parametre olarak geliyor<br />
Workspace_Yukle (pID) 'İşletmeye ait Workspace yükleme<br />
'İstenilen işletmenin ID, Ada, Parsele göre SQL cümlesi Sel1 geçici tablosuna atılıyor.<br />
strSQL = "select * from PARSEL where ISLETME_ID=" &amp; Chr(34) &amp; pID &amp; Chr(34) &amp; " and " _<br />
&amp; "ADA = " &amp; Chr(34) &amp; pADA &amp; Chr(34) &amp; " and " &amp; "PARSEL = " _<br />
&amp; Chr(34) &amp; pPARSEL &amp; Chr(34) &amp; " into sel1"<br />
MI.do strSQL 'SQL cümlemiz MI da çalıştırılıyor<br />
MI.do "add map layer sel1" 'sel1 tablomuz haritaya ekleniyor<br />
MI.do "set map zoom entire layer sel1" 'sel1 tablosunu ekrana sığacak şekilde zoomla<br />
MI.do "REMOVE map layer sel1" 'sel1 i haritadan kaldır<br />
End Sub<br />
</code><br />
<code><br />
Sub Bina_Goster(bID As String, bADA As Long, bPARSEL As Long, bNO As Integer)<br />
Dim z As Double<br />
'İşletme ID, Ada, Parsel ve Bina no su verilen işletmeye ait workspace yükleniyor<br />
Workspace_Yukle (bID)<br />
'parametre olan gelen İşletme ID, Ada, Parsel ve Bina no ya ait SQL cümlesi çıkartılıyor<br />
strSQL = "select * from BINA where ISLETME_ID=" &amp; Chr(34) &amp; bID &amp; Chr(34) &amp; " and " _<br />
&amp; "ADA = " &amp; Chr(34) &amp; bADA &amp; Chr(34) &amp; " and " &amp; "PARSEL = " _<br />
&amp; Chr(34) &amp; bPARSEL &amp; Chr(34) &amp; " and " &amp; "BINA_SIRA_NO = " &amp; bNO &amp; " into sel2"<br />
MI.do strSQL 'MapInfo da SQL cümlesi işleteliyor<br />
MI.do "add map layer sel2" 'Geçici katmanımız haritaya ekleniyor<br />
MI.do "set map zoom entire layer sel2"<br />
'SQL in sonucunda oluşturduğumuz katman ekrana tam sığacak şekilde zoom yapılıyor<br />
MI.do ("set distance units ""m""") 'Zoom için kullanılan ölçek Metre olarak setleniyor<br />
MI.do "set map zoom 500 units ""m"" layer sel2 "<br />
'Geçici katman için zoom seviyesi 500 metre olarak atanıyor<br />
MI.do "remove map layer sel2" 'Haritadan geçici katman kaldırılıyor<br />
End Sub<br />
</code><br />
<code><br />
'Workspace yüklemek için kullanılılıyor<br />
Sub Workspace_Yukle(strID As String)<br />
Dim app_yolu As String 'Uygulanın çalıştığı path<br />
Dim dosya_yolu As String 'Dosya yolu<br />
Dim dosya_adi As String 'Dosya adı<br />
Dim tabName As String 'MapInfo tablosunun adı<br />
dosya_adi = strID &amp; ".wor" 'Dosya adlarımızı Isletmet ID.wor şeklinde oluşturuyoruz<br />
app_yolu = App.Path 'Uygulama yolu<br />
strfile = app_yolu &amp; "\data\" &amp; strID &amp; "\" &amp; dosya_adi 'Dosya yolu ve adı<br />
If Len(Trim(strfile)) &gt; 0 Then<br />
If FileExist(strfile, "") = True Then<br />
If strMapinfoWorkSpace  strfile Then 'Workspace i ikinci kez açmamak için<br />
If strMapinfoWorkSpace  "" Then 'Daha önce açık ise kapat<br />
MI.do "Close All Interactive"<br />
End If<br />
strMapinfoWorkSpace = strfile<br />
InitializeMapInfoConnection 'MapInfo bağlantısını başlat<br />
Mapinfo_Run 'MapInfo yu koştur<br />
MI.do "run application """ &amp; strMapinfoWorkSpace &amp; """"<br />
frmGRAFIK.lstLayers.Clear<br />
frmGRAFIK.tvwInfo.Nodes.Clear<br />
Mapinfo_Run<br />
thereIsAMap = True<br />
kosuyor = True<br />
End If<br />
frmGRAFIK.Show 'MapInfo formunu goster<br />
frmGRAFIK.tbarMain.Visible = True<br />
Workspace_Yuklu = True 'Workspace in yuklu oldugunu tutan değişken<br />
Else<br />
MsgBox strfile &amp; " Dosya Bulunamadi."<br />
End If<br />
End If<br />
End Sub<br />
</code><br />
<code><br />
'MapInfo uygulamasını koşturan prosedürümüz<br />
Sub Mapinfo_Run()<br />
If MI Is Nothing Then 'MapInfo uygulamsı daha önce oluşturulmamıssa olustur<br />
Set MI = CreateObject("MapInfo.Application")<br />
''Set theResponder = New mmcallback<br />
'VB ile MapInfo arasındaki haberleşmeyi yapacak responder ı oluştur<br />
'Şimdilik bu class ı kullanmayacağız.<br />
InitializeMapInfoConnection 'MapInfo yu başlat<br />
Else<br />
InitializeMapInfoConnection<br />
End If<br />
End Sub<br />
</code><br />
<code><br />
'MapInfo uygulamasını başlatmak için değişkenelri setlemek ve gerekli bağlantıları yapma<br />
Public Sub InitializeMapInfoConnection()<br />
frmGRAFIK.tbarMain.Buttons("Seç").Value = tbrPressed<br />
MI.SetCallback theResponder 'Haberleşme için Responder ı çalıştır<br />
'Sağ tuşa tıklanınca ekrana çıkan Zoom Seviyesi, Ölçü Değeri, Kursorun Koordinat düzelmindeki gerçek yeri,<br />
'Katman Kontrolu, Tablo Aç gibi popup menu seçeneklerini oluşturma ve setleme<br />
MI.do "Create Buttonpad ""Callback"" As Toolbutton ID 2001 DrawMode 34 Cursor 138 Calling OLE ""QueryTool"""<br />
MI.do "Create Menu ""TitleBarMenu"" As " &amp; _<br />
"""!+Zoom Seviyesi"" ID 1101 Calling OLE ""HandleMenuSelection"", " &amp; _<br />
"""!Ölçü Değeri"" ID 1102 Calling OLE ""HandleMenuSelection"", " &amp; _<br />
"""!Kursör Yeri"" ID 1103 Calling OLE ""HandleMenuSelection"""<br />
MI.do "Create Menu ""MapperShortcut"" ID 17 As " &amp; _<br />
"""Katman Kontrolü.."" ID 1001 Calling OLE ""HandleMenuSelection"", " &amp; _<br />
"""Status Barda Göster"" As ""TitleBarMenu"", " &amp; _<br />
"""(-"", " &amp; _<br />
"""Tablo Aç..."" ID 1002 Calling OLE ""HandleMenuSelection"", " &amp; _<br />
"""Seçili Katmanı Kapat"" ID 1003 Calling OLE ""HandleMenuSelection"""<br />
MI.do "Create ButtonPad ""Custom Tools"" As " &amp; _<br />
"ToolButton ID 2001 DrawMode 34 Calling OLE ""HandleToolButton"" " &amp; _<br />
"ToolButton ID 2002 DrawMode 32 Calling OLE ""HandleToolButton"""<br />
'Form ve kullanılacak Picture nesnesinin MapInfoya bağlanması<br />
MI.do "Set Window Info Parent " &amp; frmGRAFIK.hwnd<br />
MI.do "Set Application Window " &amp; frmGRAFIK.Picture1.hwnd<br />
MI.do "Set Next Document Parent " &amp; frmGRAFIK.Picture1.hwnd &amp; " Style 1"<br />
mapWinID = CLng(MI.Eval("FrontWindow()")) 'MapInfo penceresinin Handlerı alınıyor<br />
MI.RunMenuCommand M_TOOLS_SELECTOR 'MapInfo nun seç toolu aktif yapılıyor.<br />
End Sub<br />
</code><br />
<code><br />
'Alan seçme toolu aktif yapılıyor<br />
Sub Alan_Sec()<br />
MI.RunMenuCommand M_TOOLS_SELECTOR<br />
End Sub</p>
<p>'Yakalama toolu aktif yapılıyor<br />
Sub Alan_Yakala()<br />
MI.RunMenuCommand M_TOOLS_RECENTER<br />
End Sub</p>
<p>'ZoomIn<br />
Sub ZoomIn()<br />
MI.RunMenuCommand M_TOOLS_EXPAND<br />
End Sub</p>
<p>'ZoomOut<br />
Sub ZoomOut()<br />
MI.RunMenuCommand M_TOOLS_SHRINK<br />
End Sub</p>
<p>'Haritayı ortalar<br />
Sub Ortala()<br />
MI.do "Set Map Zoom Entire"<br />
End Sub</p>
<p>'Kapalı lan bilgi almak için<br />
Sub Alan_Bilgi()<br />
MI.do "Run Menu Command ID 2001"<br />
End Sub<br />
</code><br />
Bir sonraki derste buluşmak üzere hoşçakalın, dostçakalın&#8230;<br />
Kendinize iyi bakın, iyi çalışmalar&#8230; </p>
<p>Mehmet GÜZEL<br />
Yazılım Uzmanı<br />
Web: http://www.mehmetguzel.net</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/programlama/vb-ile-giscografi-bilgi-sistemleri-uygulamasi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
