<?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>Yazılım Geliştirme arşivleri - Keşif Ruhu</title>
	<atom:link href="https://www.kesifruhu.com/tag/yazilim-gelistirme/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kesifruhu.com/tag/yazilim-gelistirme/</link>
	<description>Keşfet, Deneyimle, Paylaş</description>
	<lastBuildDate>Mon, 28 Apr 2025 11:14:43 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://www.kesifruhu.com/wp-content/uploads/2024/09/siteico-150x150.png</url>
	<title>Yazılım Geliştirme arşivleri - Keşif Ruhu</title>
	<link>https://www.kesifruhu.com/tag/yazilim-gelistirme/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>15. Olay Tabanlı Programlama (Event-Driven Programming)</title>
		<link>https://www.kesifruhu.com/yazilim/15-olay-tabanli-programlama-event-driven-programming/</link>
					<comments>https://www.kesifruhu.com/yazilim/15-olay-tabanli-programlama-event-driven-programming/#respond</comments>
		
		<dc:creator><![CDATA[darklaz]]></dc:creator>
		<pubDate>Mon, 28 Apr 2025 11:13:26 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[Delphi Dersleri]]></category>
		<category><![CDATA[Event-Driven Programming]]></category>
		<category><![CDATA[Olay Tabanlı Programlama]]></category>
		<category><![CDATA[Yazılım Geliştirme]]></category>
		<guid isPermaLink="false">https://www.kesifruhu.com/?p=559</guid>

					<description><![CDATA[<p>15. Olay Tabanlı Programlama (Event-Driven Programming) Olay tabanlı programlama (event-driven programming), programın akışının olaylar (events) tarafından belirlendiği bir programlama paradigmasıdır. Bu olaylar, kullanıcı etkileşimleri (örneğin, <a class="mh-excerpt-more" href="https://www.kesifruhu.com/yazilim/15-olay-tabanli-programlama-event-driven-programming/" title="15. Olay Tabanlı Programlama (Event-Driven Programming)">[...]</a></p>
<p><a href="https://www.kesifruhu.com/yazilim/15-olay-tabanli-programlama-event-driven-programming/">15. Olay Tabanlı Programlama (Event-Driven Programming)</a> yazısı ilk önce <a href="https://www.kesifruhu.com">Keşif Ruhu</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image"><img decoding="async" src="https://images.pexels.com/photos/4386323/pexels-photo-4386323.jpeg?auto=compress&amp;cs=tinysrgb&amp;fit=crop&amp;h=627&amp;w=1200" alt="image text"/></figure>



<p></p>



<h1 class="wp-block-heading">15. Olay Tabanlı Programlama (Event-Driven Programming)</h1>



<p>Olay tabanlı programlama (event-driven programming), programın akışının olaylar (events) tarafından belirlendiği bir programlama paradigmasıdır. Bu olaylar, kullanıcı etkileşimleri (örneğin, fare tıklamaları, klavye girişleri), sensörlerden gelen veriler, diğer programlar tarafından gönderilen mesajlar veya sistem olayları (örneğin, zamanlayıcı olayları) olabilir. Geleneksel prosedürel programlamadan farklı olarak, olay tabanlı programlamada program, belirli bir olay meydana gelene kadar pasif bir şekilde bekler ve ardından o olaya karşılık gelen bir işlem gerçekleştirir.</p>



<h2 class="wp-block-heading">Olay Tabanlı Programlamanın Temel Kavramları</h2>



<p>Olay tabanlı programlamayı anlamak için aşağıdaki temel kavramları bilmek önemlidir:</p>



<ul class="wp-block-list">
<li><strong>Olay (Event):</strong> Bir durum değişikliği veya meydana gelen bir aksiyon. Örnekler: Bir düğmeye tıklamak, bir tuşa basmak, bir mesaj almak.</li>



<li><strong>Olay Kaynağı (Event Source):</strong> Olayı başlatan nesne veya bileşen. Örnekler: Düğme (button), klavye, ağ bağlantısı.</li>



<li><strong>Olay Dinleyici (Event Listener):</strong> Belirli bir olayı dinleyen ve olay meydana geldiğinde tetiklenen kodu içeren nesne veya fonksiyon. Olay işleyici (event handler) olarak da adlandırılır.</li>



<li><strong>Olay Döngüsü (Event Loop):</strong> Olayları dinleyen ve uygun olay dinleyicilerini tetikleyen bir döngü. Programın ana akışını yönetir.</li>
</ul>



<h2 class="wp-block-heading">Delphi&#8217;de Olay Tabanlı Programlama</h2>



<p>Delphi, olay tabanlı programlamayı destekleyen güçlü bir araçtır. Görsel tasarım arayüzü (Visual Component Library &#8211; VCL) sayesinde, kullanıcı arayüzü bileşenleri (düğmeler, metin kutuları, listeler vb.) ile kolayca etkileşim kurabilirsiniz. Her bileşenin, olaylarını işlemek için kullanabileceğiniz önceden tanımlanmış olayları (Onclick, OnKeyPress, OnChange gibi) vardır.</p>



<h3 class="wp-block-heading">Olay İşleyiciler (Event Handlers)</h3>



<p>Delphi&#8217;de bir olay işleyici oluşturmak için, olayına karşılık gelen bileşenin olay özelliklerini (Object Inspector&#8217;da bulunur) kullanırsınız. Bir olay seçildiğinde, Delphi otomatik olarak ilgili olay işleyici fonksiyonunu oluşturur ve bu fonksiyonun içine olay gerçekleştiğinde çalışacak kodu yazabilirsiniz.</p>



<p>Örneğin, bir düğmenin (Button1) tıklanma olayını (OnClick) işlemek için aşağıdaki adımları izleyebilirsiniz:</p>



<ol class="wp-block-list">
<li>Delphi IDE&#8217;sinde bir form oluşturun ve forma bir adet Button bileşeni ekleyin.</li>



<li>Object Inspector penceresinde Button1&#8217;i seçin.</li>



<li>Events sekmesine gidin ve OnClick olayının karşısındaki boş alana çift tıklayın.</li>



<li>Delphi, otomatik olarak bir TForm1.Button1Click olay işleyici fonksiyonu oluşturacaktır.</li>



<li>Bu fonksiyonun içine, düğme tıklanıldığında çalışmasını istediğiniz kodu yazın.</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Düğmeye Tıklandı!');
end;
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"></span>
<span class="line"><span style="color: #569CD6">procedure</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">TForm1.Button1Click</span><span style="color: #D4D4D4">(Sender: TObject);</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Düğmeye Tıklandı!&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<h3 class="wp-block-heading">Örnek: Basit Bir Hesap Makinesi Uygulaması</h3>



<p>Olay tabanlı programlamayı daha iyi anlamak için, basit bir hesap makinesi uygulaması örneğini inceleyelim. Bu uygulama, iki sayıyı toplama işlemini gerçekleştiren bir düğmeye sahip olacaktır.</p>



<ol class="wp-block-list">
<li>Delphi IDE&#8217;sinde yeni bir proje oluşturun.</li>



<li>Forma iki adet TEdit (metin kutusu) bileşeni (Edit1, Edit2) ve bir adet TButton bileşeni (Button1) ekleyin.</li>



<li>Button1&#8217;in Caption özelliğini &#8216;+&#8217; olarak ayarlayın.</li>



<li>Forma bir adet TLabel bileşeni (Label1) ekleyin. Bu, sonucun görüntüleneceği yer olacaktır.</li>



<li>Button1&#8217;in OnClick olayına aşağıdaki kodu ekleyin:</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="
procedure TForm1.Button1Click(Sender: TObject);
var
  sayi1, sayi2, sonuc: Integer;
begin
  try
    sayi1 := StrToInt(Edit1.Text);
    sayi2 := StrToInt(Edit2.Text);
    sonuc := sayi1 + sayi2;
    Label1.Caption := IntToStr(sonuc);
  except
    on EConvertError do
      ShowMessage('Lütfen geçerli sayısal değerler girin.');
  end;
end;
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"></span>
<span class="line"><span style="color: #569CD6">procedure</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">TForm1.Button1Click</span><span style="color: #D4D4D4">(Sender: TObject);</span></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  sayi1, sayi2, sonuc: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">try</span></span>
<span class="line"><span style="color: #D4D4D4">    sayi1 := StrToInt(Edit1.Text);</span></span>
<span class="line"><span style="color: #D4D4D4">    sayi2 := StrToInt(Edit2.Text);</span></span>
<span class="line"><span style="color: #D4D4D4">    sonuc := sayi1 + sayi2;</span></span>
<span class="line"><span style="color: #D4D4D4">    Label1.Caption := IntToStr(sonuc);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">except</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">on</span><span style="color: #D4D4D4"> EConvertError </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">      ShowMessage(</span><span style="color: #CE9178">&#39;Lütfen geçerli sayısal değerler girin.&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<p>Bu kod, Edit1 ve Edit2&#8217;den girilen metinleri tamsayılara dönüştürmeye çalışır, ardından bu sayıları toplar ve sonucu Label1&#8217;in başlığına yazar. Hata durumunda (geçersiz sayısal değerler girilirse), bir hata mesajı görüntüler.</p>



<h2 class="wp-block-heading">Olay Tabanlı Programlamanın Avantajları</h2>



<ul class="wp-block-list">
<li><strong>Esneklik:</strong> Olay tabanlı programlar, farklı olaylara farklı şekillerde yanıt verebilir, bu da onları çok çeşitli uygulamalar için uygun hale getirir.</li>



<li><strong>Kullanıcı Arayüzü (UI) Odaklı:</strong> Özellikle kullanıcı arayüzleri geliştirmek için idealdir. Kullanıcı etkileşimleri (tıklamalar, klavye girişleri vb.) kolayca işlenebilir.</li>



<li><strong>Modülerlik:</strong> Olay dinleyicileri, bağımsız modüller olarak geliştirilebilir, bu da kodun yeniden kullanılabilirliğini ve bakımını kolaylaştırır.</li>



<li><strong>Eş Zamanlılık:</strong> Olay tabanlı programlar, birden fazla olayı aynı anda işleyebilir, bu da uygulamanın yanıt verme hızını artırır.</li>
</ul>



<h2 class="wp-block-heading">Olay Tabanlı Programlamanın Dezavantajları</h2>



<ul class="wp-block-list">
<li><strong>Karmaşıklık:</strong> Program akışının olaylar tarafından belirlenmesi, özellikle büyük ve karmaşık uygulamalarda programın anlaşılmasını ve hata ayıklamasını zorlaştırabilir.</li>



<li><strong>Debug Zorluğu:</strong> Olayların sıralaması ve zamanlaması, hataların nedenini belirlemeyi zorlaştırabilir.</li>



<li><strong>Performans:</strong> Çok sayıda olayın işlenmesi, performans sorunlarına yol açabilir.</li>
</ul>



<h2 class="wp-block-heading">Sonuç</h2>



<p>Olay tabanlı programlama, modern yazılım geliştirmede yaygın olarak kullanılan güçlü bir paradigmadır. Özellikle kullanıcı arayüzleri, oyunlar ve gerçek zamanlı sistemler gibi etkileşimli uygulamalar için uygundur. Delphi, olay tabanlı programlamayı kolaylaştıran araçlar ve kütüphaneler sunar. Bu paradigmayı anlamak, daha esnek, modüler ve kullanıcı dostu uygulamalar geliştirmenize yardımcı olacaktır. Olay tabanlı programlama, programın akışını kontrol etmenin farklı bir yolunu sunarak, yazılım geliştirme sürecinde önemli bir rol oynar.</p>



<p>Bu makalede, olay tabanlı programlamanın temel kavramlarını, Delphi&#8217;deki uygulamasını, avantaj ve dezavantajlarını inceledik. Umarım bu bilgiler, olay tabanlı programlamayı anlamanıza ve uygulamalarınıza dahil etmenize yardımcı olur.</p>



<ul class="wp-block-list"></ul>



<p><em>Unutmayın, pratik yapmak öğrenmenin en iyi yoludur! Küçük projelerle başlayarak, olay tabanlı programlama becerilerinizi geliştirebilirsiniz.</em></p>



<p></p>
<p><a href="https://www.kesifruhu.com/yazilim/15-olay-tabanli-programlama-event-driven-programming/">15. Olay Tabanlı Programlama (Event-Driven Programming)</a> yazısı ilk önce <a href="https://www.kesifruhu.com">Keşif Ruhu</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.kesifruhu.com/yazilim/15-olay-tabanli-programlama-event-driven-programming/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>3. Değişkenler ve Veri Türleri</title>
		<link>https://www.kesifruhu.com/yazilim/3-degiskenler-ve-veri-turleri/</link>
					<comments>https://www.kesifruhu.com/yazilim/3-degiskenler-ve-veri-turleri/#respond</comments>
		
		<dc:creator><![CDATA[darklaz]]></dc:creator>
		<pubDate>Tue, 15 Apr 2025 08:38:31 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Yazılım Geliştirme]]></category>
		<guid isPermaLink="false">https://www.kesifruhu.com/?p=509</guid>

					<description><![CDATA[<p>3. Değişkenler ve Veri Türleri Delphi programlama dilinde, verileri saklamak ve işlemek için değişkenler ve bu değişkenlerin alabileceği değerlerin türlerini belirleyen veri türleri temel kavramlardır. <a class="mh-excerpt-more" href="https://www.kesifruhu.com/yazilim/3-degiskenler-ve-veri-turleri/" title="3. Değişkenler ve Veri Türleri">[...]</a></p>
<p><a href="https://www.kesifruhu.com/yazilim/3-degiskenler-ve-veri-turleri/">3. Değişkenler ve Veri Türleri</a> yazısı ilk önce <a href="https://www.kesifruhu.com">Keşif Ruhu</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image"><img decoding="async" src="https://images.pexels.com/photos/325111/pexels-photo-325111.jpeg?auto=compress&amp;cs=tinysrgb&amp;fit=crop&amp;h=627&amp;w=1200" alt="image text"/></figure>



<p></p>



<h1 class="wp-block-heading">3. Değişkenler ve Veri Türleri</h1>



<p>Delphi programlama dilinde, verileri saklamak ve işlemek için <strong>değişkenler</strong> ve bu değişkenlerin alabileceği değerlerin türlerini belirleyen <strong>veri türleri</strong> temel kavramlardır. Bu kavramları anlamak, sağlam ve etkili programlar yazmak için kritik öneme sahiptir. Bu makalede, Delphi&#8217;deki değişkenler ve veri türlerini detaylı bir şekilde inceleyeceğiz.</p>



<h2 class="wp-block-heading">Değişkenler</h2>



<p><strong>Değişken</strong>, programın çalışma zamanında değerini değiştirebileceğiniz bir bellek alanıdır. Her değişkenin bir adı, bir veri türü ve bir değeri vardır. Değişkenler, programın verileri saklamasına ve bu veriler üzerinde işlemler yapmasına olanak tanır.</p>



<h3 class="wp-block-heading">Değişken Tanımlama</h3>



<p>Delphi&#8217;de değişkenler, <code>var</code> anahtar kelimesi kullanılarak tanımlanır. Değişkenin adı ve veri türü belirtilir.</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="var
  sayi: Integer;
  isim: String;
  pi: Real;
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  sayi: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  isim: </span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  pi: </span><span style="color: #569CD6">Real</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p>Bu örnekte, <code>sayi</code> adında bir tamsayı (Integer), <code>isim</code> adında bir metin (String) ve <code>pi</code> adında bir ondalıklı sayı (Real) değişkeni tanımlanmıştır.</p>



<h3 class="wp-block-heading">Değişkene Değer Atama</h3>



<p>Değişkenlere değer atamak için <code>:=</code> (atama operatörü) kullanılır.</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="sayi := 10;
isim := 'Delphi';
pi := 3.14;
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">sayi := </span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">isim := </span><span style="color: #CE9178">&#39;Delphi&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">pi := </span><span style="color: #B5CEA8">3.14</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p>Bu örnekte, <code>sayi</code> değişkenine 10, <code>isim</code> değişkenine &#8216;Delphi&#8217; ve <code>pi</code> değişkenine 3.14 değeri atanmıştır.</p>



<h2 class="wp-block-heading">Veri Türleri</h2>



<p><strong>Veri türleri</strong>, bir değişkenin alabileceği değerlerin türünü ve üzerinde yapılabilecek işlemleri belirler. Delphi, çeşitli veri türlerini destekler.</p>



<h3 class="wp-block-heading">Temel Veri Türleri</h3>



<p>Delphi&#8217;deki temel veri türlerinden bazıları şunlardır:</p>



<ul class="wp-block-list">
<li><strong>Integer:</strong> Tamsayıları temsil eder. (Örn: -1, 0, 1, 100)</li>



<li><strong>Real:</strong> Ondalıklı sayıları temsil eder. (Örn: 3.14, -2.5, 0.0)</li>



<li><strong>Boolean:</strong> Mantıksal değerleri (<code>True</code> veya <code>False</code>) temsil eder.</li>



<li><strong>Char:</strong> Tek bir karakteri temsil eder. (Örn: &#8216;A&#8217;, &#8216;b&#8217;, &#8216;5&#8217;)</li>



<li><strong>String:</strong> Metinleri (karakter dizilerini) temsil eder. (Örn: &#8216;Merhaba Dünya&#8217;, &#8216;Delphi Programlama&#8217;)</li>
</ul>



<h3 class="wp-block-heading">Tamsayı Veri Türleri (Integer Types)</h3>



<p>Delphi, farklı boyutlarda tamsayı veri türlerini destekler. Bu türler, saklanabilecek sayıların aralığını belirler.</p>



<ul class="wp-block-list">
<li><strong>ShortInt:</strong> -128 ile 127 arasındaki tamsayıları saklar.</li>



<li><strong>SmallInt:</strong> -32768 ile 32767 arasındaki tamsayıları saklar.</li>



<li><strong>Integer:</strong> -2147483648 ile 2147483647 arasındaki tamsayıları saklar. (32-bit)</li>



<li><strong>Int64:</strong> -9223372036854775808 ile 9223372036854775807 arasındaki tamsayıları saklar. (64-bit)</li>



<li><strong>Byte:</strong> 0 ile 255 arasındaki tamsayıları saklar. (işaretsiz)</li>



<li><strong>Word:</strong> 0 ile 65535 arasındaki tamsayıları saklar. (işaretsiz)</li>



<li><strong>Cardinal:</strong> 0 ile 4294967295 arasındaki tamsayıları saklar. (işaretsiz)</li>
</ul>



<h3 class="wp-block-heading">Ondalıklı Sayı Veri Türleri (Real Types)</h3>



<p>Delphi, farklı hassasiyet seviyelerinde ondalıklı sayı veri türlerini destekler.</p>



<ul class="wp-block-list">
<li><strong>Real48:</strong> Daha az hassasiyetli ondalıklı sayılar için kullanılır.</li>



<li><strong>Single:</strong> Tek duyarlıklı ondalıklı sayılar için kullanılır.</li>



<li><strong>Double:</strong> Çift duyarlıklı ondalıklı sayılar için kullanılır (genellikle daha hassas sonuçlar için tercih edilir).</li>



<li><strong>Extended:</strong> Daha yüksek hassasiyetli ondalıklı sayılar için kullanılır.</li>



<li><strong>Currency:</strong> Para birimi değerlerini saklamak için kullanılır.</li>
</ul>



<h3 class="wp-block-heading">Karakter ve Metin Veri Türleri (Character and String Types)</h3>



<p>Delphi, karakterleri ve metinleri saklamak için farklı veri türleri sunar.</p>



<ul class="wp-block-list">
<li><strong>Char:</strong> Tek bir karakteri temsil eder. Örneğin: <code>var karakter: Char; karakter := 'A';</code></li>



<li><strong>String:</strong> Değişken uzunlukta metinleri temsil eder. Örneğin: <code>var metin: String; metin := 'Merhaba Dünya';</code></li>



<li><strong>ShortString:</strong> 255 karaktere kadar olan metinleri temsil eder. Artık pek kullanılmamaktadır.</li>



<li><strong>AnsiString:</strong> ANSI karakter kümesini kullanan metinleri temsil eder.</li>



<li><strong>WideString:</strong> Unicode karakter kümesini kullanan metinleri temsil eder. Uluslararası karakter desteği gerektiren uygulamalar için idealdir.</li>
</ul>



<p>&nbsp;</p>



<h3 class="wp-block-heading">Boolean Veri Türü</h3>



<p>Boolean veri türü, sadece iki değeri alabilir: <code>True</code> (Doğru) veya <code>False</code> (Yanlış). Mantıksal ifadelerin sonuçlarını saklamak için kullanılır.</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="var
  durum: Boolean;

begin
  durum := (5 &gt; 3); // durum değişkenine True değeri atanır.
end;
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  durum: </span><span style="color: #569CD6">Boolean</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  durum := (</span><span style="color: #B5CEA8">5</span><span style="color: #D4D4D4"> &gt; </span><span style="color: #B5CEA8">3</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// durum değişkenine True değeri atanır.</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<h2 class="wp-block-heading">Sabitler (Constants)</h2>



<p><strong>Sabitler</strong>, programın çalışma zamanında değeri değişmeyen verilerdir. Sabitler, <code>const</code> anahtar kelimesi kullanılarak tanımlanır.</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="const
  MAX_SAYI = 100;
  MESAJ = 'Hata oluştu!';
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">const</span></span>
<span class="line"><span style="color: #D4D4D4">  MAX_SAYI = </span><span style="color: #B5CEA8">100</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  MESAJ = </span><span style="color: #CE9178">&#39;Hata oluştu!&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p>Sabitler, programın okunabilirliğini artırır ve tekrar eden değerlerin tek bir yerden değiştirilmesine olanak tanır.</p>



<h2 class="wp-block-heading">Veri Türü Dönüşümleri</h2>



<p>Farklı veri türleri arasında dönüşüm yapmak gerekebilir. Delphi, bu amaçla çeşitli fonksiyonlar sunar.</p>



<ul class="wp-block-list">
<li><strong>IntToStr:</strong> Tamsayıyı metne dönüştürür.</li>



<li><strong>StrToInteger:</strong> Metni tamsayıya dönüştürür. (Hata kontrolü önemlidir.)</li>



<li><strong>FloatToStr:</strong> Ondalıklı sayıyı metne dönüştürür.</li>



<li><strong>StrToFloat:</strong> Metni ondalıklı sayıya dönüştürür. (Hata kontrolü önemlidir.)</li>
</ul>



<p>Veri türü dönüşümleri sırasında veri kaybı veya hatalar oluşabileceğini unutmamak önemlidir. Bu nedenle, dönüşümler dikkatli bir şekilde yapılmalı ve hata kontrolleri eklenmelidir.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;Değişkenler ve veri türleri, programlamanın temel taşlarıdır. Doğru veri türünü seçmek ve değişkenleri doğru şekilde kullanmak, programın performansını ve güvenilirliğini önemli ölçüde etkiler.&#8221; &#8211; Bir Delphi Uzmanı</p>
</blockquote>



<h2 class="wp-block-heading">Özet</h2>



<p>Delphi&#8217;de değişkenler ve veri türleri, programların temel yapı taşlarıdır. Değişkenler, verileri saklamak ve işlemek için kullanılırken, veri türleri bu verilerin türünü ve üzerinde yapılabilecek işlemleri belirler. Doğru veri türünü seçmek, programın performansını, belleği verimli kullanmasını ve güvenilirliğini artırır. Bu makalede ele alınan konuları iyi anlamak, Delphi programlama becerilerinizi önemli ölçüde geliştirecektir.</p>
<p><a href="https://www.kesifruhu.com/yazilim/3-degiskenler-ve-veri-turleri/">3. Değişkenler ve Veri Türleri</a> yazısı ilk önce <a href="https://www.kesifruhu.com">Keşif Ruhu</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.kesifruhu.com/yazilim/3-degiskenler-ve-veri-turleri/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
