<?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>Delphi arşivleri - Keşif Ruhu</title>
	<atom:link href="https://www.kesifruhu.com/tag/delphi/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kesifruhu.com/tag/delphi/</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>Delphi arşivleri - Keşif Ruhu</title>
	<link>https://www.kesifruhu.com/tag/delphi/</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>14. Formlar ve Bileşenler ile Çalışma (Button, Label, Edit, vb.)</title>
		<link>https://www.kesifruhu.com/yazilim/14-formlar-ve-bilesenler-ile-calisma-button-label-edit-vb/</link>
					<comments>https://www.kesifruhu.com/yazilim/14-formlar-ve-bilesenler-ile-calisma-button-label-edit-vb/#respond</comments>
		
		<dc:creator><![CDATA[darklaz]]></dc:creator>
		<pubDate>Fri, 25 Apr 2025 14:19:13 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[Bileşen]]></category>
		<category><![CDATA[Button]]></category>
		<category><![CDATA[Label]]></category>
		<guid isPermaLink="false">https://www.kesifruhu.com/?p=557</guid>

					<description><![CDATA[<p>14. Formlar ve Bileşenler ile Çalışma (Button, Label, Edit, vb.) Delphi programlama dilinde, kullanıcı arayüzleri (UI) formlar ve bu formlar üzerine yerleştirilen bileşenler aracılığıyla oluşturulur. <a class="mh-excerpt-more" href="https://www.kesifruhu.com/yazilim/14-formlar-ve-bilesenler-ile-calisma-button-label-edit-vb/" title="14. Formlar ve Bileşenler ile Çalışma (Button, Label, Edit, vb.)">[...]</a></p>
<p><a href="https://www.kesifruhu.com/yazilim/14-formlar-ve-bilesenler-ile-calisma-button-label-edit-vb/">14. Formlar ve Bileşenler ile Çalışma (Button, Label, Edit, vb.)</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/9242921/pexels-photo-9242921.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">14. Formlar ve Bileşenler ile Çalışma (Button, Label, Edit, vb.)</h1>



<p>Delphi programlama dilinde, kullanıcı arayüzleri (UI) formlar ve bu formlar üzerine yerleştirilen bileşenler aracılığıyla oluşturulur. Formlar, uygulamanın ana penceresini veya diyalog kutularını temsil ederken, bileşenler (<em>button, label, edit, vb.</em>) kullanıcıların etkileşimde bulunabileceği görsel elemanlardır. Bu makalede, Delphi&#8217;de formlarla ve temel bileşenlerle nasıl çalışılacağını ayrıntılı bir şekilde inceleyeceğiz.</p>



<h2 class="wp-block-heading">Formlar (Forms)</h2>



<p>Formlar, Delphi uygulamalarının temel yapı taşlarıdır. Her Delphi uygulaması en az bir forma sahip olmalıdır. Formlar, görsel bir tasarım yüzeyi sağlar ve üzerine yerleştirilen bileşenlerin düzenlenmesini ve yönetilmesini kolaylaştırır.</p>



<h3 class="wp-block-heading">Form Oluşturma</h3>



<p>Delphi&#8217;de yeni bir form oluşturmak için şu adımları izleyebilirsiniz:</p>



<ol class="wp-block-list">
<li>Delphi IDE&#8217;sini açın.</li>



<li><strong>File > New > VCL Form Application</strong> seçeneğini tıklayın.</li>



<li>Yeni bir form otomatik olarak oluşturulacaktır.</li>
</ol>



<p>Oluşturulan form, <strong>Object Inspector</strong> penceresi aracılığıyla özelliklerini değiştirebileceğiniz bir nesnedir. Örneğin, formun başlığını (<em>Caption</em>), boyutunu (<em>Width, Height</em>) ve konumunu (<em>Left, Top</em>) ayarlayabilirsiniz.</p>



<h3 class="wp-block-heading">Form Özellikleri</h3>



<p>Formların birçok önemli özelliği vardır. İşte en sık kullanılanlardan bazıları:</p>



<ul class="wp-block-list">
<li><strong>Caption:</strong> Formun başlık çubuğunda görünen metin.</li>



<li><strong>Name:</strong> Formun kod içinde kullanılan adı.</li>



<li><strong>Width:</strong> Formun genişliği (piksel cinsinden).</li>



<li><strong>Height:</strong> Formun yüksekliği (piksel cinsinden).</li>



<li><strong>Left:</strong> Formun ekranın sol kenarından uzaklığı (piksel cinsinden).</li>



<li><strong>Top:</strong> Formun ekranın üst kenarından uzaklığı (piksel cinsinden).</li>



<li><strong>Color:</strong> Formun arka plan rengi.</li>



<li><strong>Font:</strong> Form üzerindeki metinlerin yazı tipi özellikleri.</li>



<li><strong>BorderStyle:</strong> Formun kenarlık stili (<em>bsSingle, bsSizeable, bsNone, vb.</em>).</li>



<li><strong>Position:</strong> Formun ekranda nasıl konumlandırılacağı (<em>poDesigned, poDesktopCenter, poMainFormCenter, vb.</em>).</li>
</ul>



<h2 class="wp-block-heading">Bileşenler (Components)</h2>



<p>Bileşenler, formlar üzerine yerleştirilen ve kullanıcıların etkileşimde bulunabileceği görsel nesnelerdir. Delphi, çok çeşitli bileşenler sunar. En sık kullanılanlardan bazıları şunlardır:</p>



<ul class="wp-block-list">
<li><strong>TButton:</strong> Düğme.</li>



<li><strong>TLabel:</strong> Etiket (statik metin).</li>



<li><strong>TEdit:</strong> Metin giriş kutusu.</li>



<li><strong>TMemo:</strong> Çok satırlı metin giriş kutusu.</li>



<li><strong>TCheckBox:</strong> Onay kutusu.</li>



<li><strong>TRadioButton:</strong> Seçim düğmesi.</li>



<li><strong>TListBox:</strong> Liste kutusu.</li>



<li><strong>TComboBox:</strong> Açılır liste kutusu.</li>



<li><strong>TImage:</strong> Resim görüntüleme bileşeni.</li>
</ul>



<h3 class="wp-block-heading">Bileşen Ekleme ve Yerleştirme</h3>



<p>Bileşenleri forma eklemek için şu adımları izleyebilirsiniz:</p>



<ol class="wp-block-list">
<li>Delphi IDE&#8217;sindeki <strong>Tool Palette</strong> (Araç Paleti) penceresini açın.</li>



<li>Eklemek istediğiniz bileşeni (örneğin, <em>TButton</em>) seçin.</li>



<li>Form üzerinde bileşeni yerleştirmek istediğiniz yere tıklayın.</li>
</ol>



<p>Bileşenler eklendikten sonra, <strong>Object Inspector</strong> penceresi aracılığıyla özelliklerini değiştirebilirsiniz. Örneğin, bir düğmenin başlığını (<em>Caption</em>), boyutunu (<em>Width, Height</em>) ve konumunu (<em>Left, Top</em>) ayarlayabilirsiniz.</p>



<h3 class="wp-block-heading">Temel Bileşenler ve Kullanımları</h3>



<p>Şimdi, en sık kullanılan bazı bileşenleri ve nasıl kullanıldıklarını inceleyelim.</p>



<h4 class="wp-block-heading">TButton (Düğme)</h4>



<p>Düğmeler, kullanıcıların bir eylemi tetiklemek için tıkladığı bileşenlerdir. Bir düğmenin <em>OnClick</em> olayına kod ekleyerek, düğmeye tıklandığında yapılacak işlemleri tanımlayabilirsiniz.</p>



<p>Örnek:</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="
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>



<h4 class="wp-block-heading">TLabel (Etiket)</h4>



<p>Etiketler, form üzerinde statik metin görüntülemek için kullanılır. Genellikle, diğer bileşenlerin açıklamalarını veya başlıklarını göstermek için kullanılırlar.</p>



<p>Örnek:</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="
Label1.Caption := 'Adınız:';
" 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: #D4D4D4">Label1.Caption := </span><span style="color: #CE9178">&#39;Adınız:&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<h4 class="wp-block-heading">TEdit (Metin Giriş Kutusu)</h4>



<p>Metin giriş kutuları, kullanıcıların metin girmesi için kullanılır. Kullanıcı tarafından girilen metin, <em>Text</em> özelliği aracılığıyla okunabilir ve değiştirilebilir.</p>



<p>Örnek:</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
 KullaniciAdi: string;
begin
 KullaniciAdi := Edit1.Text;
 ShowMessage('Merhaba, ' + KullaniciAdi + '!');
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">var</span></span>
<span class="line"><span style="color: #D4D4D4"> KullaniciAdi: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4"> KullaniciAdi := Edit1.Text;</span></span>
<span class="line"><span style="color: #D4D4D4"> ShowMessage(</span><span style="color: #CE9178">&#39;Merhaba, &#39;</span><span style="color: #D4D4D4"> + KullaniciAdi + </span><span style="color: #CE9178">&#39;!&#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>



<h4 class="wp-block-heading">TMemo (Çok Satırlı Metin Giriş Kutusu)</h4>



<p>Çok satırlı metin giriş kutuları, kullanıcıların birden fazla satırda metin girmesi için kullanılır. <em>Lines</em> özelliği, metin satırlarını bir dizi olarak tutar.</p>



<p>Örnek:</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="
Memo1.Lines.Add('İlk Satır');
Memo1.Lines.Add('İkinci Satır');
" 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: #D4D4D4">Memo1.Lines.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&#39;İlk Satır&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">Memo1.Lines.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&#39;İkinci Satır&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<h3 class="wp-block-heading">Olay Yönetimi (Event Handling)</h3>



<p>Delphi&#8217;de olaylar, bileşenlerin belirli durumlara yanıt vermesini sağlar. Örneğin, bir düğmenin tıklanması, bir metin kutusuna metin girilmesi veya bir formun yüklenmesi birer olaydır. Olaylara yanıt vermek için, ilgili bileşenin olay işleyicisine (<em>event handler</em>) kod yazmanız gerekir.</p>



<p>Örneğin, bir düğmenin <em>OnClick</em> olayına yanıt vermek için, düğmenin <em>OnClick</em> olay işleyicisine aşağıdaki gibi kod ekleyebilirsiniz:</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="
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>



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



<p>Şimdi, basit bir örnek uygulama oluşturalım. Bu uygulama, kullanıcının adını ve soyadını girmesini isteyecek ve ardından bir mesaj kutusunda kullanıcıya merhaba diyecektir.</p>



<ol class="wp-block-list">
<li>Yeni bir Delphi projesi oluşturun (<strong>File > New > VCL Form Application</strong>).</li>



<li>Form üzerine iki adet <em>TLabel</em>, iki adet <em>TEdit</em> ve bir adet <em>TButton</em> bileşeni ekleyin.</li>



<li>Etiketlerin başlıklarını (<em>Caption</em>) sırasıyla &#8220;Adınız:&#8221; ve &#8220;Soyadınız:&#8221; olarak ayarlayın.</li>



<li>Düğmenin başlığını (<em>Caption</em>) &#8220;Merhaba De!&#8221; olarak ayarlayın.</li>



<li>Düğmenin <em>OnClick</em> olay işleyicisine 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
 Ad: string;
 Soyad: string;
begin
 Ad := Edit1.Text;
 Soyad := Edit2.Text;
 ShowMessage('Merhaba, ' + Ad + ' ' + Soyad + '!');
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"> Ad: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4"> Soyad: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4"> Ad := Edit1.Text;</span></span>
<span class="line"><span style="color: #D4D4D4"> Soyad := Edit2.Text;</span></span>
<span class="line"><span style="color: #D4D4D4"> ShowMessage(</span><span style="color: #CE9178">&#39;Merhaba, &#39;</span><span style="color: #D4D4D4"> + Ad + </span><span style="color: #CE9178">&#39; &#39;</span><span style="color: #D4D4D4"> + Soyad + </span><span style="color: #CE9178">&#39;!&#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>



<p>Bu adımları tamamladıktan sonra, uygulamayı çalıştırabilirsiniz. Uygulama, kullanıcının adını ve soyadını girmesini isteyecek ve ardından bir mesaj kutusunda kullanıcıya merhaba diyecektir.</p>



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



<p>Bu makalede, Delphi programlama dilinde formlar ve temel bileşenlerle nasıl çalışılacağını ayrıntılı bir şekilde inceledik. Formların nasıl oluşturulacağını, bileşenlerin nasıl ekleneceğini ve yerleştirileceğini, temel bileşenlerin nasıl kullanılacağını ve olayların nasıl yönetileceğini öğrendik. Bu bilgiler, Delphi ile kullanıcı arayüzleri oluşturmaya başlamak için sağlam bir temel sağlayacaktır. Delphi&#8217;nin zengin bileşen kütüphanesi ve olay güdümlü programlama modeli, güçlü ve etkileşimli uygulamalar geliştirmenize olanak tanır.</p>
<p><a href="https://www.kesifruhu.com/yazilim/14-formlar-ve-bilesenler-ile-calisma-button-label-edit-vb/">14. Formlar ve Bileşenler ile Çalışma (Button, Label, Edit, vb.)</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/14-formlar-ve-bilesenler-ile-calisma-button-label-edit-vb/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>13.Dosya İşlemleri (File I/O) – Temel Seviye</title>
		<link>https://www.kesifruhu.com/yazilim/13-dosya-islemleri-file-i-o-temel-seviye/</link>
					<comments>https://www.kesifruhu.com/yazilim/13-dosya-islemleri-file-i-o-temel-seviye/#respond</comments>
		
		<dc:creator><![CDATA[darklaz]]></dc:creator>
		<pubDate>Thu, 24 Apr 2025 16:01:43 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[File I/O]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[TextFile]]></category>
		<guid isPermaLink="false">https://www.kesifruhu.com/?p=554</guid>

					<description><![CDATA[<p>13. Dosya İşlemleri (File I/O) – Temel Seviye Delphi programlama dilinde dosya işlemleri (File I/O), programınızın dış dünya ile iletişim kurmasını sağlayan temel bir yetenektir. <a class="mh-excerpt-more" href="https://www.kesifruhu.com/yazilim/13-dosya-islemleri-file-i-o-temel-seviye/" title="13.Dosya İşlemleri (File I/O) – Temel Seviye">[...]</a></p>
<p><a href="https://www.kesifruhu.com/yazilim/13-dosya-islemleri-file-i-o-temel-seviye/">13.Dosya İşlemleri (File I/O) – Temel Seviye</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/2644597/pexels-photo-2644597.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">13. Dosya İşlemleri (File I/O) – Temel Seviye</h1>



<p>Delphi programlama dilinde dosya işlemleri (File I/O), programınızın dış dünya ile iletişim kurmasını sağlayan temel bir yetenektir. Bu, verilerin kalıcı olarak saklanması, yapılandırılmış verilerin okunması, log dosyalarının oluşturulması veya farklı uygulamalar arasında veri alışverişi gibi birçok senaryoda kullanılır. Bu makalede, Delphi&#8217;de dosya işlemlerinin temel seviyesine odaklanacağız ve dosya okuma, yazma ve yönetme konularını ele alacağız.</p>



<h2 class="wp-block-heading">Dosya İşlemlerine Giriş</h2>



<p>Dosya işlemleri, programınızın disk üzerindeki dosyalarla etkileşim kurmasını içerir. Bu etkileşim, dosyaları açma, okuma, yazma, kapatma ve silme gibi işlemleri kapsar. Delphi, dosya işlemlerini gerçekleştirmek için çeşitli fonksiyonlar ve nesneler sunar.</p>



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



<p>Delphi&#8217;de, temelde iki tür dosya bulunur:</p>



<ul class="wp-block-list">
<li><strong>Metin Dosyaları (Text Files):</strong> ASCII veya Unicode karakterler içeren dosyalardır. İnsan tarafından okunabilir formatta veri saklarlar.</li>



<li><strong>İkili Dosyalar (Binary Files):</strong> Herhangi bir türde veri (sayılar, yapılar, nesneler vb.) içerebilen dosyalardır. Genellikle insan tarafından doğrudan okunamazlar.</li>
</ul>



<h2 class="wp-block-heading">Metin Dosyası İşlemleri</h2>



<p>Metin dosyaları, genellikle yapılandırılmış verileri saklamak ve işlemek için kullanılır. Delphi&#8217;de metin dosyalarıyla çalışmak için `TextFile` türünü ve ilgili fonksiyonları kullanırız.</p>



<h3 class="wp-block-heading">Dosya Açma ve Kapama</h3>



<p>Bir metin dosyasını açmak için `AssignFile`, `Reset` (okuma için) veya `Rewrite` (yazma için) fonksiyonları kullanılır. Dosya işlemleri tamamlandıktan sonra `CloseFile` fonksiyonu ile dosya kapatılmalıdı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(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="
var
  MyFile: TextFile;
begin
  AssignFile(MyFile, 'data.txt');
  Rewrite(MyFile); // Yeni bir dosya oluştur veya varsa üzerine yaz
  // Dosyaya yazma işlemleri
  CloseFile(MyFile);
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  MyFile: TextFile;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  AssignFile(MyFile, </span><span style="color: #CE9178">&#39;data.txt&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  Rewrite(MyFile); </span><span style="color: #6A9955">// Yeni bir dosya oluştur veya varsa üzerine yaz</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Dosyaya yazma işlemleri</span></span>
<span class="line"><span style="color: #D4D4D4">  CloseFile(MyFile);</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>Okuma için ise:</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(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="
var
  MyFile: TextFile;
begin
  AssignFile(MyFile, 'data.txt');
  Reset(MyFile); // Dosyayı okuma modunda aç
  // Dosyadan okuma işlemleri
  CloseFile(MyFile);
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  MyFile: TextFile;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  AssignFile(MyFile, </span><span style="color: #CE9178">&#39;data.txt&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  Reset(MyFile); </span><span style="color: #6A9955">// Dosyayı okuma modunda aç</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Dosyadan okuma işlemleri</span></span>
<span class="line"><span style="color: #D4D4D4">  CloseFile(MyFile);</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">Dosyaya Yazma</h3>



<p>Metin dosyasına veri yazmak için `Write` veya `WriteLn` fonksiyonları kullanılır. `Write`, veriyi olduğu gibi dosyaya yazarken, `WriteLn` veriyi yazdıktan sonra bir satır sonu karakteri ekler.</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(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="
var
  MyFile: TextFile;
begin
  AssignFile(MyFile, 'output.txt');
  Rewrite(MyFile);
  WriteLn(MyFile, 'Merhaba, Dünya!');
  WriteLn(MyFile, 'Bu bir Delphi örneğidir.');
  CloseFile(MyFile);
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  MyFile: TextFile;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  AssignFile(MyFile, </span><span style="color: #CE9178">&#39;output.txt&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  Rewrite(MyFile);</span></span>
<span class="line"><span style="color: #D4D4D4">  WriteLn(MyFile, </span><span style="color: #CE9178">&#39;Merhaba, Dünya!&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  WriteLn(MyFile, </span><span style="color: #CE9178">&#39;Bu bir Delphi örneğidir.&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  CloseFile(MyFile);</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">Dosyadan Okuma</h3>



<p>Metin dosyasından veri okumak için `Read` veya `ReadLn` fonksiyonları kullanılır. `Read`, belirli sayıda karakteri okurken, `ReadLn` bir satır sonuna kadar okur.</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(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="
var
  MyFile: TextFile;
  Line: string;
begin
  AssignFile(MyFile, 'output.txt');
  Reset(MyFile);
  while not Eof(MyFile) do
  begin
    ReadLn(MyFile, Line);
    ShowMessage(Line); // Okunan satırı göster
  end;
  CloseFile(MyFile);
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  MyFile: TextFile;</span></span>
<span class="line"><span style="color: #D4D4D4">  Line: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  AssignFile(MyFile, </span><span style="color: #CE9178">&#39;output.txt&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  Reset(MyFile);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">while</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">not</span><span style="color: #D4D4D4"> Eof(MyFile) </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">    ReadLn(MyFile, Line);</span></span>
<span class="line"><span style="color: #D4D4D4">    ShowMessage(Line); </span><span style="color: #6A9955">// Okunan satırı göster</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: #D4D4D4">  CloseFile(MyFile);</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>`Eof(MyFile)` fonksiyonu, dosyanın sonuna gelinip gelinmediğini kontrol eder. Bu, döngü içinde dosya okurken önemlidir.</p>



<h2 class="wp-block-heading">İkili Dosya İşlemleri</h2>



<p>İkili dosyalar, yapılandırılmış verileri daha verimli bir şekilde saklamak için kullanılır. Delphi&#8217;de ikili dosyalarla çalışmak için `File` türünü ve ilgili fonksiyonları kullanırız.</p>



<h3 class="wp-block-heading">Dosya Açma ve Kapama (İkili)</h3>



<p>İkili dosyaları açmak için `AssignFile`, `Reset` (okuma için) veya `Rewrite` (yazma için) fonksiyonları kullanılır. Ancak, ikili dosyalar için `File` tü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(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="
var
  MyFile: File;
begin
  AssignFile(MyFile, 'data.bin');
  Rewrite(MyFile, 1); // Boyut parametresi (genellikle 1 kullanılır)
  // Dosyaya yazma işlemleri
  CloseFile(MyFile);
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  MyFile: </span><span style="color: #569CD6">File</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  AssignFile(MyFile, </span><span style="color: #CE9178">&#39;data.bin&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  Rewrite(MyFile, </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// Boyut parametresi (genellikle 1 kullanılır)</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Dosyaya yazma işlemleri</span></span>
<span class="line"><span style="color: #D4D4D4">  CloseFile(MyFile);</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>Okuma için:</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(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="
var
  MyFile: File;
begin
  AssignFile(MyFile, 'data.bin');
  Reset(MyFile, 1); // Boyut parametresi (genellikle 1 kullanılır)
  // Dosyadan okuma işlemleri
  CloseFile(MyFile);
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  MyFile: </span><span style="color: #569CD6">File</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  AssignFile(MyFile, </span><span style="color: #CE9178">&#39;data.bin&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  Reset(MyFile, </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// Boyut parametresi (genellikle 1 kullanılır)</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Dosyadan okuma işlemleri</span></span>
<span class="line"><span style="color: #D4D4D4">  CloseFile(MyFile);</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">Dosyaya Yazma (İkili)</h3>



<p>İkili dosyaya veri yazmak için `BlockWrite` fonksiyonu kullanılır. Bu fonksiyon, bir bellek bloğunu doğrudan dosyaya yazar.</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(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="
var
  MyFile: File;
  Data: array[0..9] of Integer;
  i: Integer;
begin
  AssignFile(MyFile, 'data.bin');
  Rewrite(MyFile, SizeOf(Integer));

  // Veri doldur
  for i := 0 to 9 do
    Data[i] := i * 10;

  BlockWrite(MyFile, Data, SizeOf(Data));
  CloseFile(MyFile);
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  MyFile: </span><span style="color: #569CD6">File</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  Data: </span><span style="color: #569CD6">array</span><span style="color: #D4D4D4">[</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">.</span><span style="color: #B5CEA8">.9</span><span style="color: #D4D4D4">] </span><span style="color: #569CD6">of</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  i: </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">  AssignFile(MyFile, </span><span style="color: #CE9178">&#39;data.bin&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  Rewrite(MyFile, SizeOf(</span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">));</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Veri doldur</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> i := </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">to</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">9</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">    Data[i] := i * </span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  BlockWrite(MyFile, Data, SizeOf(Data));</span></span>
<span class="line"><span style="color: #D4D4D4">  CloseFile(MyFile);</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">Dosyadan Okuma (İkili)</h3>



<p>İkili dosyadan veri okumak için `BlockRead` fonksiyonu kullanılır. Bu fonksiyon, dosyadan bir bellek bloğunu okur.</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(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="
var
  MyFile: File;
  Data: array[0..9] of Integer;
  i: Integer;
  BytesRead: Integer;
begin
  AssignFile(MyFile, 'data.bin');
  Reset(MyFile, SizeOf(Integer));

  BlockRead(MyFile, Data, SizeOf(Data), BytesRead);

  // Okunan veriyi işle
  for i := 0 to 9 do
    ShowMessage(IntToStr(Data[i]));

  CloseFile(MyFile);
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  MyFile: </span><span style="color: #569CD6">File</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  Data: </span><span style="color: #569CD6">array</span><span style="color: #D4D4D4">[</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">.</span><span style="color: #B5CEA8">.9</span><span style="color: #D4D4D4">] </span><span style="color: #569CD6">of</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  i: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  BytesRead: </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">  AssignFile(MyFile, </span><span style="color: #CE9178">&#39;data.bin&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  Reset(MyFile, SizeOf(</span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">));</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  BlockRead(MyFile, Data, SizeOf(Data), BytesRead);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Okunan veriyi işle</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> i := </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">to</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">9</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">    ShowMessage(IntToStr(Data[i]));</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  CloseFile(MyFile);</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>`BlockRead` fonksiyonu, okunan byte sayısını `BytesRead` parametresinde döndürür. Bu, dosyanın sonuna ulaşıldığında veya bir hata oluştuğunda önemlidir.</p>



<h2 class="wp-block-heading">Ek Fonksiyonlar ve Dikkat Edilmesi Gerekenler</h2>



<ul class="wp-block-list">
<li><strong>FileExists(FileName: string): Boolean:</strong> Dosyanın var olup olmadığını kontrol eder.</li>



<li><strong>DeleteFile(FileName: string): Boolean:</strong> Dosyayı siler.</li>



<li><strong>RenameFile(OldName, NewName: string): Boolean:</strong> Dosyanın adını değiştirir.</li>



<li>Dosya işlemlerinde hata kontrolü önemlidir. `IOResult` değişkenini kullanarak hataları kontrol edebilirsiniz.</li>



<li>Dosyaları açarken ve kapatırken dikkatli olun. Açık unutulan dosyalar, kaynak tüketimine ve veri kaybına neden olabilir.</li>
</ul>



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



<p>Delphi&#8217;de dosya işlemleri, uygulamalarınızın dış dünya ile etkileşim kurmasını sağlayan güçlü bir araçtır. Bu makalede, temel metin ve ikili dosya işlemlerini ele aldık. Bu bilgilerle, kendi uygulamalarınızda dosya okuma, yazma ve yönetme işlemlerini gerçekleştirebilirsiniz. Unutmayın, dosya işlemlerinde dikkatli olmak ve hata kontrolünü ihmal etmemek önemlidir.</p>



<p>Dosya işlemleri konusunu daha derinlemesine incelemek için Delphi&#8217;nin online yardımına ve çeşitli kaynaklara başvurabilirsiniz. Başarılar!</p>



<p><strong>Önemli Not:</strong> Bu makale temel seviyede dosya işlemlerini kapsamaktadır. Daha karmaşık senaryolar için, örneğin veritabanı işlemleri veya ağ üzerinden dosya transferi, daha gelişmiş teknikler ve kütüphaneler kullanmanız gerekebilir.</p>



<p><em>Umarım bu makale Delphi programlama dilinde dosya işlemleri konusunda size yardımcı olmuştur. İyi kodlamalar!</em></p>
<p><a href="https://www.kesifruhu.com/yazilim/13-dosya-islemleri-file-i-o-temel-seviye/">13.Dosya İşlemleri (File I/O) – Temel Seviye</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/13-dosya-islemleri-file-i-o-temel-seviye/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>12. Hata Yakalama (Try-Except-Finally Blokları)</title>
		<link>https://www.kesifruhu.com/yazilim/12-hata-yakalama-try-except-finally-bloklari/</link>
					<comments>https://www.kesifruhu.com/yazilim/12-hata-yakalama-try-except-finally-bloklari/#respond</comments>
		
		<dc:creator><![CDATA[darklaz]]></dc:creator>
		<pubDate>Tue, 22 Apr 2025 14:40:02 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[Exception Handling]]></category>
		<category><![CDATA[Hata Yakalama]]></category>
		<category><![CDATA[Try-Except]]></category>
		<category><![CDATA[Try-Finally]]></category>
		<guid isPermaLink="false">https://www.kesifruhu.com/?p=551</guid>

					<description><![CDATA[<p>12. Hata Yakalama (Try-Except-Finally Blokları) Delphi programlama dilinde, hata yakalama, uygulamanızın beklenmedik durumlarla başa çıkmasını sağlayan kritik bir mekanizmadır. Try-Except-Finally blokları, potansiyel hataların oluşabileceği kod <a class="mh-excerpt-more" href="https://www.kesifruhu.com/yazilim/12-hata-yakalama-try-except-finally-bloklari/" title="12. Hata Yakalama (Try-Except-Finally Blokları)">[...]</a></p>
<p><a href="https://www.kesifruhu.com/yazilim/12-hata-yakalama-try-except-finally-bloklari/">12. Hata Yakalama (Try-Except-Finally Blokları)</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/31343632/pexels-photo-31343632.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">12. Hata Yakalama (Try-Except-Finally Blokları)</h1>



<p>Delphi programlama dilinde, <em>hata yakalama</em>, uygulamanızın beklenmedik durumlarla başa çıkmasını sağlayan kritik bir mekanizmadır. <code>Try-Except-Finally</code> blokları, potansiyel hataların oluşabileceği kod bölümlerini güvenli bir şekilde yönetmek ve uygulamanın çökmesini önlemek için kullanılır. Bu makalede, Delphi&#8217;de hata yakalama yöntemlerini, <code>Try-Except-Finally</code> bloklarının nasıl kullanıldığını ve iyi bir hata yönetimi stratejisinin nasıl oluşturulacağını ayrıntılı olarak inceleyeceğiz.</p>



<h2 class="wp-block-heading">Hata Yönetiminin Önemi</h2>



<p>Bir uygulamanın sağlamlığı ve kullanıcı deneyimi, hata yönetimi ile doğrudan ilişkilidir. İyi bir hata yönetimi, uygulamanın beklenmedik durumlarda düzgün bir şekilde çalışmaya devam etmesini, kullanıcıya anlamlı mesajlar göstermesini ve veri kaybını önlemesini sağlar. Özellikle kritik sistemlerde (örneğin, finansal uygulamalar, tıbbi cihazlar) hata yönetimi hayati öneme sahiptir.</p>



<p>Hata yönetimi aşağıdaki avantajları sunar:</p>



<ul class="wp-block-list">
<li><strong>Uygulama Kararlılığı:</strong> Beklenmedik hataların uygulamanın çökmesine neden olmasını engeller.</li>



<li><strong>Kullanıcı Deneyimi:</strong> Hatalar hakkında kullanıcıya anlaşılır ve yardımcı bilgiler sunar.</li>



<li><strong>Veri Bütünlüğü:</strong> Hata durumlarında veri kaybını veya bozulmasını önler.</li>



<li><strong>Hata Ayıklama Kolaylığı:</strong> Hataların nedenlerini belirlemeye ve düzeltmeye yardımcı olur.</li>
</ul>



<h2 class="wp-block-heading">Try-Except Blokları</h2>



<p><code>Try-Except</code> blokları, hata yakalamanın temel yapı taşıdır. <code>Try</code> bloğu, potansiyel hataların oluşabileceği kodu içerir. Eğer <code>Try</code> bloğu içerisinde bir hata oluşursa, program akışı ilgili <code>Except</code> bloğuna yönlendirilir.</p>



<h3 class="wp-block-heading">Temel Sözdizimi</h3>



<p><code>Try-Except</code> bloğunun temel sözdizimi aşağıdaki gibidir:</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="try
  // Hata oluşabilecek kod
except
  on E: Exception do
  begin
    // Hata işleme kodu
  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 style="color: #569CD6">try</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Hata oluşabilecek kod</span></span>
<span class="line"><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"> E: Exception </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955">// Hata işleme kodu</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>Burada:</p>



<ul class="wp-block-list">
<li><code>try</code>: Hata oluşabilecek kodun başladığı bloğu belirtir.</li>



<li><code>except</code>: Hata oluştuğunda çalışacak kodun başladığı bloğu belirtir.</li>



<li><code>on E: Exception do</code>: Belirli bir hata türünü (<code>Exception</code> veya türetilmiş bir sınıf) yakalamak için kullanılır. <code>E</code>, yakalanan hata nesnesini temsil eder.</li>



<li><code>begin ... end</code>: Hata işleme kodunu içerir.</li>
</ul>



<h3 class="wp-block-heading">Örnek Kullanım</h3>



<p>Aşağıdaki örnek, bir dosya açma işlemi sırasında oluşabilecek hataları yakalamayı göstermektedir:</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(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="var
  MyFile: TextFile;
begin
  try
    AssignFile(MyFile, 'C:\NonExistentFile.txt');
    Reset(MyFile);
    // Dosya işlemleri
  except
    on E: Exception do
    begin
      ShowMessage('Dosya açılırken bir hata oluştu: ' + E.Message);
    end;
  end;
  CloseFile(MyFile);
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">  MyFile: TextFile;</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">    AssignFile(MyFile, </span><span style="color: #CE9178">&#39;C:\NonExistentFile.txt&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    Reset(MyFile);</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955">// Dosya işlemleri</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"> E: Exception </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">      ShowMessage(</span><span style="color: #CE9178">&#39;Dosya açılırken bir hata oluştu: &#39;</span><span style="color: #D4D4D4"> + E.Message);</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: #D4D4D4">  </span><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  CloseFile(MyFile);</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>Bu kod, <code>C:\NonExistentFile.txt</code> dosyasını açmaya çalışır. Eğer dosya bulunamazsa veya başka bir hata oluşursa, <code>Except</code> bloğu devreye girer ve kullanıcıya bir hata mesajı gösterilir.</p>



<h2 class="wp-block-heading">Try-Finally Blokları</h2>



<p><code>Try-Finally</code> blokları, bir kod bloğunun her durumda (hata oluşsa da oluşmasa da) belirli işlemlerin yapılmasını sağlamak için kullanılır. Bu bloklar, özellikle kaynakların (örneğin, dosyalar, bellek, veritabanı bağlantıları) serbest bırakılması gerektiğinde önemlidir.</p>



<h3 class="wp-block-heading">Temel Sözdizimi</h3>



<p><code>Try-Finally</code> bloğunun temel sözdizimi aşağıdaki gibidir:</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="try
  // Korunan kod
finally
  // Her durumda çalışacak kod
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">try</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Korunan kod</span></span>
<span class="line"><span style="color: #569CD6">finally</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Her durumda çalışacak kod</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>Burada:</p>



<ul class="wp-block-list">
<li><code>try</code>: Korunması gereken kodun başladığı bloğu belirtir.</li>



<li><code>finally</code>: <code>Try</code> bloğundan sonra her durumda (hata oluşsa da oluşmasa da) çalışacak kodun başladığı bloğu belirtir.</li>
</ul>



<h3 class="wp-block-heading">Örnek Kullanım</h3>



<p>Aşağıdaki örnek, bir dosyanın her durumda kapatılmasını sağlamayı göstermektedir:</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(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="var
  MyFile: TextFile;
begin
  AssignFile(MyFile, 'C:\MyFile.txt');
  try
    Reset(MyFile);
    // Dosya işlemleri
  finally
    CloseFile(MyFile);
  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 style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  MyFile: TextFile;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  AssignFile(MyFile, </span><span style="color: #CE9178">&#39;C:\MyFile.txt&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">try</span></span>
<span class="line"><span style="color: #D4D4D4">    Reset(MyFile);</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955">// Dosya işlemleri</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">finally</span></span>
<span class="line"><span style="color: #D4D4D4">    CloseFile(MyFile);</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>Bu kod, <code>C:\MyFile.txt</code> dosyasını açar ve bazı işlemler yapar. <code>Finally</code> bloğu, dosya açma işlemi başarılı olsa da olmasa da <code>CloseFile</code> komutunu çalıştırarak dosyanın kapatılmasını garanti eder.</p>



<h2 class="wp-block-heading">Try-Except-Finally Bloklarının Birleşimi</h2>



<p><code>Try-Except</code> ve <code>Try-Finally</code> blokları, daha karmaşık hata yönetimi senaryolarında birleştirilebilir. Bu, hem hataları yakalamayı hem de kaynakları serbest bırakmayı sağlar.</p>



<h3 class="wp-block-heading">Temel Sözdizimi</h3>



<p><code>Try-Except-Finally</code> bloğunun temel sözdizimi aşağıdaki gibidir:</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(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="try
  // Hata oluşabilecek kod
except
  on E: Exception do
  begin
    // Hata işleme kodu
  end;
finally
  // Her durumda çalışacak kod
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">try</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Hata oluşabilecek kod</span></span>
<span class="line"><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"> E: Exception </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955">// Hata işleme kodu</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">finally</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Her durumda çalışacak kod</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 Kullanım</h3>



<p>Aşağıdaki örnek, hem dosya açma hatalarını yakalamayı hem de dosyanın her durumda kapatılmasını sağlamayı göstermektedir:</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(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="var
  MyFile: TextFile;
begin
  AssignFile(MyFile, 'C:\MyFile.txt');
  try
    Reset(MyFile);
    // Dosya işlemleri
  except
    on E: Exception do
    begin
      ShowMessage('Dosya açılırken veya işlenirken bir hata oluştu: ' + E.Message);
    end;
finally
    CloseFile(MyFile);
  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 style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  MyFile: TextFile;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  AssignFile(MyFile, </span><span style="color: #CE9178">&#39;C:\MyFile.txt&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">try</span></span>
<span class="line"><span style="color: #D4D4D4">    Reset(MyFile);</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955">// Dosya işlemleri</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"> E: Exception </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">      ShowMessage(</span><span style="color: #CE9178">&#39;Dosya açılırken veya işlenirken bir hata oluştu: &#39;</span><span style="color: #D4D4D4"> + E.Message);</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">finally</span></span>
<span class="line"><span style="color: #D4D4D4">    CloseFile(MyFile);</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>Bu kod, <code>C:\MyFile.txt</code> dosyasını açar ve bazı işlemler yapar. Eğer dosya açılırken veya işlenirken bir hata oluşursa, <code>Except</code> bloğu devreye girer ve kullanıcıya bir hata mesajı gösterilir. <code>Finally</code> bloğu, dosya açma işlemi başarılı olsa da olmasa da <code>CloseFile</code> komutunu çalıştırarak dosyanın kapatılmasını garanti eder.</p>



<h2 class="wp-block-heading">Özel Hata Sınıfları Oluşturma</h2>



<p>Delphi, kendi özel hata sınıflarınızı oluşturmanıza olanak tanır. Bu, uygulamanızın belirli ihtiyaçlarına uygun hata yönetimi sağlamanıza yardımcı olur. Özel hata sınıfları, <code>Exception</code> sınıfından türetilir ve belirli hata durumlarını temsil eder.</p>



<h3 class="wp-block-heading">Örnek Hata Sınıfı</h3>



<p>Aşağıdaki örnek, <code>EInvalidData</code> adında bir özel hata sınıfı tanımlamayı göstermektedir:</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(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="type
  EInvalidData = class(Exception)
  private
    FData: string;
  public
    constructor Create(const Message, Data: string);
    property Data: string read FData;
  end;

constructor EInvalidData.Create(const Message, Data: string);
begin
  inherited Create(Message);
  FData := Data;
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">type</span></span>
<span class="line"><span style="color: #D4D4D4">  EInvalidData = </span><span style="color: #569CD6">class</span><span style="color: #D4D4D4">(Exception)</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">private</span></span>
<span class="line"><span style="color: #D4D4D4">    FData: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">public</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">constructor</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Create</span><span style="color: #D4D4D4">(</span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> Message, Data: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">property</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Data</span><span style="color: #D4D4D4">: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">read</span><span style="color: #D4D4D4"> FData;</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>
<span class="line"><span style="color: #569CD6">constructor</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">EInvalidData.Create</span><span style="color: #D4D4D4">(</span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> Message, Data: </span><span style="color: #569CD6">string</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">inherited</span><span style="color: #D4D4D4"> Create(Message);</span></span>
<span class="line"><span style="color: #D4D4D4">  FData := Data;</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading">Kullanım Örneği</h3>



<p>Bu özel hata sınıfını kullanarak, geçersiz veri tespit edildiğinde bir hata fırlatabilirsiniz:</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="procedure ProcessData(Data: string);
begin
  if not IsValidData(Data) then
    raise EInvalidData.Create('Geçersiz veri tespit edildi!', Data);
  // Veri işleme
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">procedure</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">ProcessData</span><span style="color: #D4D4D4">(Data: </span><span style="color: #569CD6">string</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">if</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">not</span><span style="color: #D4D4D4"> IsValidData(Data) </span><span style="color: #569CD6">then</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #C586C0">raise</span><span style="color: #D4D4D4"> EInvalidData.Create(</span><span style="color: #CE9178">&#39;Geçersiz veri tespit edildi!&#39;</span><span style="color: #D4D4D4">, Data);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Veri işleme</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>Bu kod, <code>IsValidData</code> fonksiyonu tarafından geçersiz olarak tespit edilen veriler için bir <code>EInvalidData</code> hatası fırlatır. Bu hatayı yakalayarak, uygulamanızın belirli bir hata durumuna nasıl tepki vereceğini kontrol edebilirsiniz.</p>



<h2 class="wp-block-heading">İyi Bir Hata Yönetimi Stratejisi Oluşturma</h2>



<p>İyi bir hata yönetimi stratejisi, uygulamanızın sağlamlığını ve güvenilirliğini artırır. Aşağıdaki adımlar, etkili bir hata yönetimi stratejisi oluşturmanıza yardımcı olabilir:</p>



<ol class="wp-block-list">
<li><strong>Potansiyel Hata Kaynaklarını Belirleyin:</strong> Uygulamanızda hataların oluşabileceği tüm noktaları (örneğin, dosya işlemleri, veritabanı erişimi, kullanıcı girişi) belirleyin.</li>



<li><strong>Hata Yakalama Blokları Kullanın:</strong> Potansiyel hata kaynaklarının etrafına <code>Try-Except-Finally</code> blokları yerleştirin.</li>



<li><strong>Özel Hata Sınıfları Oluşturun:</strong> Uygulamanızın belirli ihtiyaçlarına uygun özel hata sınıfları oluşturun.</li>



<li><strong>Hata Mesajlarını Anlamlı Hale Getirin:</strong> Kullanıcılara anlaşılır ve yardımcı hata mesajları gösterin.</li>



<li><strong>Hata Günlüğü Tutun:</strong> Hataları bir günlük dosyasına kaydedin, böylece daha sonra analiz edebilir ve düzeltebilirsiniz.</li>



<li><strong>Test Edin:</strong> Hata yönetimi stratejinizi kapsamlı bir şekilde test edin. Farklı hata senaryolarını simüle edin ve uygulamanızın doğru şekilde tepki verdiğinden emin olun.</li>
</ol>



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



<p>Delphi&#8217;de hata yakalama, uygulamanızın güvenilirliğini ve kararlılığını sağlamak için kritik bir öneme sahiptir. <code>Try-Except-Finally</code> blokları, potansiyel hataların oluşabileceği kod bölümlerini güvenli bir şekilde yönetmek ve uygulamanın çökmesini önlemek için güçlü bir araçtır. İyi bir hata yönetimi stratejisi oluşturarak, uygulamanızın beklenmedik durumlarla başa çıkmasını ve kullanıcıya sorunsuz bir deneyim sunmasını sağlayabilirsiniz.</p>
<p><a href="https://www.kesifruhu.com/yazilim/12-hata-yakalama-try-except-finally-bloklari/">12. Hata Yakalama (Try-Except-Finally Blokları)</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/12-hata-yakalama-try-except-finally-bloklari/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>11.Kayıt Tipleri (Records) ve Sabitler (Const)</title>
		<link>https://www.kesifruhu.com/yazilim/11-kayit-tipleri-records-ve-sabitler-const/</link>
					<comments>https://www.kesifruhu.com/yazilim/11-kayit-tipleri-records-ve-sabitler-const/#respond</comments>
		
		<dc:creator><![CDATA[darklaz]]></dc:creator>
		<pubDate>Mon, 21 Apr 2025 14:45:47 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[Kayıt Tipleri]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Sabitler]]></category>
		<category><![CDATA[Veri Yapıları]]></category>
		<guid isPermaLink="false">https://www.kesifruhu.com/?p=548</guid>

					<description><![CDATA[<p>11.Kayıt Tipleri (Records) ve Sabitler (Const) Delphi programlama dilinde, veri yapılarını düzenlemek ve programın okunabilirliğini artırmak için çeşitli araçlar bulunur. Bu araçlardan ikisi de kayıt <a class="mh-excerpt-more" href="https://www.kesifruhu.com/yazilim/11-kayit-tipleri-records-ve-sabitler-const/" title="11.Kayıt Tipleri (Records) ve Sabitler (Const)">[...]</a></p>
<p><a href="https://www.kesifruhu.com/yazilim/11-kayit-tipleri-records-ve-sabitler-const/">11.Kayıt Tipleri (Records) ve Sabitler (Const)</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/3861972/pexels-photo-3861972.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">11.Kayıt Tipleri (Records) ve Sabitler (Const)</h1>



<p>Delphi programlama dilinde, veri yapılarını düzenlemek ve programın okunabilirliğini artırmak için çeşitli araçlar bulunur. Bu araçlardan ikisi de <strong>kayıt tipleri (records)</strong> ve <strong>sabitler (constants)</strong>&#8216;dir. Bu makalede, kayıt tiplerinin ne olduğunu, nasıl kullanıldığını ve sabitlerin programlamadaki önemini detaylı bir şekilde inceleyeceğiz.</p>



<h2 class="wp-block-heading">Kayıt Tipleri (Records) Nedir?</h2>



<p>Kayıt tipleri, farklı veri türlerini tek bir çatı altında toplamanıza olanak tanıyan veri yapılarıdır. Başka bir deyişle, birbiriyle ilişkili farklı türdeki verileri bir araya getirerek daha anlamlı ve düzenli yapılar oluşturabilirsiniz. Örneğin, bir öğrencinin adını, soyadını, numarasını ve not ortalamasını tek bir kayıt altında tutabilirsiniz.</p>



<h3 class="wp-block-heading">Kayıt Tipi Tanımlama</h3>



<p>Kayıt tipleri, <code>type</code> anahtar kelimesiyle tanımlanır. İşte basit bir örnek:</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="
type
  Ogrenci = record
    Ad: string;
    Soyad: string;
    Numara: Integer;
    NotOrtalamasi: Real;
  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">type</span></span>
<span class="line"><span style="color: #D4D4D4">  Ogrenci = </span><span style="color: #569CD6">record</span></span>
<span class="line"><span style="color: #D4D4D4">    Ad: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    Soyad: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    Numara: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    NotOrtalamasi: </span><span style="color: #569CD6">Real</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></code></pre></div>



<p>Bu tanımlamada, <code>Ogrenci</code> adında bir kayıt tipi oluşturduk. Bu kayıt tipi, <code>Ad</code> (string), <code>Soyad</code> (string), <code>Numara</code> (Integer) ve <code>NotOrtalamasi</code> (Real) olmak üzere dört farklı alana sahiptir.</p>



<h3 class="wp-block-heading">Kayıt Tipi Kullanımı</h3>



<p>Kayıt tipini tanımladıktan sonra, bu tipten değişkenler oluşturabilir ve alanlarına erişebilirsiniz. İşte bir örnek:</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(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="
var
  ogr1: Ogrenci;

begin
  ogr1.Ad := 'Ahmet';
  ogr1.Soyad := 'Yılmaz';
  ogr1.Numara := 12345;
  ogr1.NotOrtalamasi := 3.5;

  ShowMessage('Öğrenci Adı: ' + ogr1.Ad);
  ShowMessage('Öğrenci Soyadı: ' + ogr1.Soyad);
  ShowMessage('Öğrenci Numarası: ' + IntToStr(ogr1.Numara));
  ShowMessage('Öğrenci Not Ortalaması: ' + FloatToStr(ogr1.NotOrtalamasi));
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  ogr1: Ogrenci;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  ogr1.Ad := </span><span style="color: #CE9178">&#39;Ahmet&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  ogr1.Soyad := </span><span style="color: #CE9178">&#39;Yılmaz&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  ogr1.Numara := </span><span style="color: #B5CEA8">12345</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  ogr1.NotOrtalamasi := </span><span style="color: #B5CEA8">3.5</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Öğrenci Adı: &#39;</span><span style="color: #D4D4D4"> + ogr1.Ad);</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Öğrenci Soyadı: &#39;</span><span style="color: #D4D4D4"> + ogr1.Soyad);</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Öğrenci Numarası: &#39;</span><span style="color: #D4D4D4"> + IntToStr(ogr1.Numara));</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Öğrenci Not Ortalaması: &#39;</span><span style="color: #D4D4D4"> + FloatToStr(ogr1.NotOrtalamasi));</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>Bu örnekte, <code>ogr1</code> adında bir <code>Ogrenci</code> tipinde değişken oluşturduk ve bu değişkenin alanlarına değerler atadık. Daha sonra, bu değerleri ekrana yazdırdık.</p>



<h3 class="wp-block-heading">İç İçe Kayıtlar (Nested Records)</h3>



<p>Kayıt tipleri, iç içe de kullanılabilir. Yani, bir kayıt tipinin içinde başka bir kayıt tipi bulunabilir. Bu, daha karmaşık veri yapıları oluşturmanıza olanak tanır. Örneğin, bir öğrencinin adres bilgilerini ayrı bir kayıt tipinde tanımlayıp, bu kayıt tipini <code>Ogrenci</code> kayıt tipinin içinde kullanabilirsiniz.</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(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="
type
  Adres = record
    Sehir: string;
    Ilce: string;
    Mahalle: string;
  end;

  Ogrenci = record
    Ad: string;
    Soyad: string;
    Numara: Integer;
    NotOrtalamasi: Real;
    AdresBilgisi: Adres;
  end;

var
  ogr1: Ogrenci;

begin
  ogr1.Ad := 'Ahmet';
  ogr1.Soyad := 'Yılmaz';
  ogr1.Numara := 12345;
  ogr1.NotOrtalamasi := 3.5;
  ogr1.AdresBilgisi.Sehir := 'İstanbul';
  ogr1.AdresBilgisi.Ilce := 'Kadıköy';
  ogr1.AdresBilgisi.Mahalle := 'Caferağa';

  ShowMessage('Öğrenci Şehri: ' + ogr1.AdresBilgisi.Sehir);
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">type</span></span>
<span class="line"><span style="color: #D4D4D4">  Adres = </span><span style="color: #569CD6">record</span></span>
<span class="line"><span style="color: #D4D4D4">    Sehir: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    Ilce: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    Mahalle: </span><span style="color: #569CD6">string</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>
<span class="line"><span style="color: #D4D4D4">  Ogrenci = </span><span style="color: #569CD6">record</span></span>
<span class="line"><span style="color: #D4D4D4">    Ad: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    Soyad: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    Numara: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    NotOrtalamasi: </span><span style="color: #569CD6">Real</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    AdresBilgisi: Adres;</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>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  ogr1: Ogrenci;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  ogr1.Ad := </span><span style="color: #CE9178">&#39;Ahmet&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  ogr1.Soyad := </span><span style="color: #CE9178">&#39;Yılmaz&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  ogr1.Numara := </span><span style="color: #B5CEA8">12345</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  ogr1.NotOrtalamasi := </span><span style="color: #B5CEA8">3.5</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  ogr1.AdresBilgisi.Sehir := </span><span style="color: #CE9178">&#39;İstanbul&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  ogr1.AdresBilgisi.Ilce := </span><span style="color: #CE9178">&#39;Kadıköy&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  ogr1.AdresBilgisi.Mahalle := </span><span style="color: #CE9178">&#39;Caferağa&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Öğrenci Şehri: &#39;</span><span style="color: #D4D4D4"> + ogr1.AdresBilgisi.Sehir);</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>Bu örnekte, <code>Adres</code> adında bir kayıt tipi tanımladık ve bu kayıt tipini <code>Ogrenci</code> kayıt tipinin içinde <code>AdresBilgisi</code> adıyla kullandık.</p>



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



<p>Sabitler, programın çalışması sırasında değeri değişmeyen değerlerdir. Program içinde sabit bir değeri birden fazla yerde kullanmanız gerektiğinde, bu değeri bir sabit olarak tanımlamak, hem kodun okunabilirliğini artırır hem de değeri değiştirmek istediğinizde tek bir yerden değişiklik yapmanızı sağlar.</p>



<h3 class="wp-block-heading">Sabit Tanımlama</h3>



<p>Sabitler, <code>const</code> anahtar kelimesiyle tanımlanır. İşte basit bir örnek:</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
  PI = 3.14159;
  MAKSIMUM_OGRENCI_SAYISI = 100;
  UYGULAMA_ADI = 'Delphi Uygulaması';
" 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">const</span></span>
<span class="line"><span style="color: #D4D4D4">  PI = </span><span style="color: #B5CEA8">3.14159</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  MAKSIMUM_OGRENCI_SAYISI = </span><span style="color: #B5CEA8">100</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  UYGULAMA_ADI = </span><span style="color: #CE9178">&#39;Delphi Uygulaması&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p>Bu tanımlamada, <code>PI</code>, <code>MAKSIMUM_OGRENCI_SAYISI</code> ve <code>UYGULAMA_ADI</code> adında üç farklı sabit tanımladık. Sabitlerin değerleri programın çalışması sırasında değiştirilemez.</p>



<h3 class="wp-block-heading">Sabit Kullanımı</h3>



<p>Sabitler, değişkenler gibi kullanılabilir. İşte bir örnek:</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(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="
const
  PI = 3.14159;

var
  yaricap: Real;
  alan: Real;

begin
  yaricap := 5;
  alan := PI * yaricap * yaricap;

  ShowMessage('Dairenin Alanı: ' + FloatToStr(alan));
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">const</span></span>
<span class="line"><span style="color: #D4D4D4">  PI = </span><span style="color: #B5CEA8">3.14159</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  yaricap: </span><span style="color: #569CD6">Real</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  alan: </span><span style="color: #569CD6">Real</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">  yaricap := </span><span style="color: #B5CEA8">5</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  alan := PI * yaricap * yaricap;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Dairenin Alanı: &#39;</span><span style="color: #D4D4D4"> + FloatToStr(alan));</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>Bu örnekte, <code>PI</code> sabitini kullanarak bir dairenin alanını hesapladık.</p>



<h3 class="wp-block-heading">Tip Belirtilmiş Sabitler (Typed Constants)</h3>



<p>Delphi&#8217;de, sabitlere tip de belirtebilirsiniz. Bu, daha güvenli ve okunabilir kod yazmanıza yardımcı olur. İşte bir örnek:</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
  PI: Real = 3.14159;
  MAKSIMUM_OGRENCI_SAYISI: Integer = 100;
  UYGULAMA_ADI: string = 'Delphi Uygulaması';
" 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">const</span></span>
<span class="line"><span style="color: #D4D4D4">  PI: </span><span style="color: #569CD6">Real</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">3.14159</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  MAKSIMUM_OGRENCI_SAYISI: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">100</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  UYGULAMA_ADI: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4"> = </span><span style="color: #CE9178">&#39;Delphi Uygulaması&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p>Bu tanımlamada, sabitlerin tiplerini de belirttik. Bu, derleyicinin tip uyumsuzluğu hatalarını daha erken yakalamasına yardımcı olur.</p>



<h2 class="wp-block-heading">Kayıtlar ve Sabitlerin Birlikte Kullanımı</h2>



<p>Kayıt tipleri ve sabitler, birlikte kullanılarak daha karmaşık ve düzenli yapılar oluşturulabilir. Örneğin, bir şirketin çalışan bilgilerini tutan bir kayıt tipi tanımlayabilir ve şirketin adını bir sabit olarak tanımlayabilirsiniz.</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(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="
const
  SIRKET_ADI = 'Delphi A.Ş.';

type
  Calisan = record
    Ad: string;
    Soyad: string;
    Departman: string;
    Maas: Real;
  end;

var
  calisan1: Calisan;

begin
  calisan1.Ad := 'Ayşe';
  calisan1.Soyad := 'Demir';
  calisan1.Departman := 'Yazılım Geliştirme';
  calisan1.Maas := 5000;

  ShowMessage('Şirket Adı: ' + SIRKET_ADI);
  ShowMessage('Çalışan Adı: ' + calisan1.Ad);
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">const</span></span>
<span class="line"><span style="color: #D4D4D4">  SIRKET_ADI = </span><span style="color: #CE9178">&#39;Delphi A.Ş.&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">type</span></span>
<span class="line"><span style="color: #D4D4D4">  Calisan = </span><span style="color: #569CD6">record</span></span>
<span class="line"><span style="color: #D4D4D4">    Ad: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    Soyad: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    Departman: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    Maas: </span><span style="color: #569CD6">Real</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>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  calisan1: Calisan;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  calisan1.Ad := </span><span style="color: #CE9178">&#39;Ayşe&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  calisan1.Soyad := </span><span style="color: #CE9178">&#39;Demir&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  calisan1.Departman := </span><span style="color: #CE9178">&#39;Yazılım Geliştirme&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  calisan1.Maas := </span><span style="color: #B5CEA8">5000</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Şirket Adı: &#39;</span><span style="color: #D4D4D4"> + SIRKET_ADI);</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Çalışan Adı: &#39;</span><span style="color: #D4D4D4"> + calisan1.Ad);</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>Bu örnekte, <code>SIRKET_ADI</code> adında bir sabit tanımladık ve <code>Calisan</code> adında bir kayıt tipi oluşturduk. Daha sonra, bu sabit ve kayıt tipini birlikte kullandık.</p>



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



<p><strong>Kayıt tipleri (records)</strong> ve <strong>sabitler (constants)</strong>, Delphi programlama dilinde veri yapılarını düzenlemek ve programın okunabilirliğini artırmak için önemli araçlardır. Kayıt tipleri, farklı veri türlerini tek bir çatı altında toplamanıza olanak tanırken, sabitler programın çalışması sırasında değeri değişmeyen değerleri tanımlamanızı sağlar. Bu araçları doğru kullanarak, daha düzenli, okunabilir ve bakımı kolay programlar yazabilirsiniz.</p>



<p>Bu makalede, kayıt tiplerinin ve sabitlerin ne olduğunu, nasıl tanımlandığını ve kullanıldığını detaylı bir şekilde inceledik. Umarım bu bilgiler, Delphi programlama becerilerinizi geliştirmenize yardımcı olur.</p>
<p><a href="https://www.kesifruhu.com/yazilim/11-kayit-tipleri-records-ve-sabitler-const/">11.Kayıt Tipleri (Records) ve Sabitler (Const)</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/11-kayit-tipleri-records-ve-sabitler-const/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>10. Tarih ve Saat İşlemleri (TDateTime Kullanımı)</title>
		<link>https://www.kesifruhu.com/yazilim/10-tarih-ve-saat-islemleri-tdatetime-kullanimi/</link>
					<comments>https://www.kesifruhu.com/yazilim/10-tarih-ve-saat-islemleri-tdatetime-kullanimi/#respond</comments>
		
		<dc:creator><![CDATA[darklaz]]></dc:creator>
		<pubDate>Sun, 20 Apr 2025 19:29:24 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[Delphi Programlama]]></category>
		<category><![CDATA[Saat İşlemleri]]></category>
		<category><![CDATA[Tarih İşlemleri]]></category>
		<category><![CDATA[TDateTime]]></category>
		<guid isPermaLink="false">https://www.kesifruhu.com/?p=545</guid>

					<description><![CDATA[<p>10. Tarih ve Saat İşlemleri (TDateTime Kullanımı) Delphi programlama dilinde tarih ve saat işlemleri, finansal uygulamalardan, log kayıtlarına, randevu sistemlerinden, oyun geliştirmeye kadar birçok alanda <a class="mh-excerpt-more" href="https://www.kesifruhu.com/yazilim/10-tarih-ve-saat-islemleri-tdatetime-kullanimi/" title="10. Tarih ve Saat İşlemleri (TDateTime Kullanımı)">[...]</a></p>
<p><a href="https://www.kesifruhu.com/yazilim/10-tarih-ve-saat-islemleri-tdatetime-kullanimi/">10. Tarih ve Saat İşlemleri (TDateTime Kullanımı)</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/2388570/pexels-photo-2388570.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">10. Tarih ve Saat İşlemleri (TDateTime Kullanımı)</h1>



<p>Delphi programlama dilinde tarih ve saat işlemleri, finansal uygulamalardan, log kayıtlarına, randevu sistemlerinden, oyun geliştirmeye kadar birçok alanda kritik bir rol oynar. Delphi, tarih ve saat bilgilerini saklamak ve işlemek için <strong>TDateTime</strong> veri tipini sunar. Bu makalede, TDateTime&#8217;ın ne olduğunu, nasıl kullanıldığını ve Delphi&#8217;de tarih ve saatlerle nasıl etkili bir şekilde çalışabileceğinizi ayrıntılı olarak inceleyeceğiz.</p>



<h2 class="wp-block-heading">TDateTime Veri Tipi Nedir?</h2>



<p><strong>TDateTime</strong>, Delphi&#8217;de tarih ve saat bilgilerini temsil etmek için kullanılan bir kayan noktalı sayı veri tipidir (Double). Tamsayı kısmı tarihi, ondalık kısmı ise günü temsil eder. Bu yapı, tarih ve saat bilgilerini tek bir değişken içinde saklamayı ve bu bilgiler üzerinde matematiksel işlemler yapmayı kolaylaştırır.</p>



<p>TDateTime, 30 Aralık 1899 saat 12:00&#8217;ı sıfır (0) olarak kabul eder. Bu tarihten sonraki her gün için tamsayı kısmı 1 artar. Örneğin, 31 Aralık 1899 saat 12:00, 1.0 değerine karşılık gelir. Saati temsil eden ondalık kısım ise, günün kesirsel bir parçasını ifade eder. Örneğin, öğlen 12:00 0.5 değerine, akşam 18:00 ise 0.75 değerine karşılık gelir.</p>



<h2 class="wp-block-heading">TDateTime ile Çalışmak</h2>



<h3 class="wp-block-heading">TDateTime Değerleri Oluşturma</h3>



<p>Delphi&#8217;de TDateTime değerleri oluşturmanın birkaç yolu vardır:</p>



<ul class="wp-block-list">
<li><strong>Date ve Time Fonksiyonlarını Kullanmak:</strong> Date fonksiyonu geçerli tarihi, Time fonksiyonu ise geçerli saati TDateTime türünde döndürür.</li>



<li><strong>EncodeDate ve EncodeTime Fonksiyonlarını Kullanmak:</strong> Bu fonksiyonlar, sırasıyla yıl, ay, gün ve saat, dakika, saniye bilgilerini alarak bir TDateTime değeri oluşturur.</li>



<li><strong>StrToDateTime Fonksiyonunu Kullanmak:</strong> Bir string ifadeyi TDateTime türüne dönüştürmek için kullanılır.</li>
</ul>



<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="
var
  TarihSaat: TDateTime;
begin
  // Geçerli tarihi alır
  TarihSaat := Date;

  // Geçerli saati alır
  TarihSaat := Time;

  // Belirli bir tarih ve saat oluşturur
  TarihSaat := EncodeDate(2024, 10, 27) + EncodeTime(14, 30, 0);

  // String'den TDateTime'a dönüştürme
  TarihSaat := StrToDateTime('27.10.2024 14:30:00');
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  TarihSaat: TDateTime;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Geçerli tarihi alır</span></span>
<span class="line"><span style="color: #D4D4D4">  TarihSaat := Date;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Geçerli saati alır</span></span>
<span class="line"><span style="color: #D4D4D4">  TarihSaat := Time;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Belirli bir tarih ve saat oluşturur</span></span>
<span class="line"><span style="color: #D4D4D4">  TarihSaat := EncodeDate(</span><span style="color: #B5CEA8">2024</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">27</span><span style="color: #D4D4D4">) + EncodeTime(</span><span style="color: #B5CEA8">14</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">30</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// String&#39;den TDateTime&#39;a dönüştürme</span></span>
<span class="line"><span style="color: #D4D4D4">  TarihSaat := StrToDateTime(</span><span style="color: #CE9178">&#39;27.10.2024 14:30:00&#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>



<h3 class="wp-block-heading">TDateTime Değerlerini Ayrıştırma</h3>



<p>Bir TDateTime değerinden tarih ve saat bilgilerini ayrı ayrı elde etmek için aşağıdaki fonksiyonlar kullanılabilir:</p>



<ul class="wp-block-list">
<li><strong>DecodeDate:</strong> Bir TDateTime değerinden yıl, ay ve gün bilgilerini ayrıştırır.</li>



<li><strong>DecodeTime:</strong> Bir TDateTime değerinden saat, dakika, saniye ve milisaniye bilgilerini ayrıştırır.</li>



<li><strong>YearOf, MonthOf, DayOf, HourOf, MinuteOf, SecondOf, MilliSecondOf:</strong> Bu fonksiyonlar da bir TDateTime değerinden ilgili bileşenleri ayrıştırmak için kullanılabilir.</li>
</ul>



<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="
var
  TarihSaat: TDateTime;
  Yil, Ay, Gun, Saat, Dakika, Saniye, Milisaniye: Word;
begin
  TarihSaat := Now; // Şu anki tarih ve saati alır

  // DecodeDate ile tarih bileşenlerini ayrıştırma
  DecodeDate(TarihSaat, Yil, Ay, Gun);

  // DecodeTime ile saat bileşenlerini ayrıştırma
  DecodeTime(TarihSaat, Saat, Dakika, Saniye, Milisaniye);

  // YearOf, MonthOf, DayOf fonksiyonlarını kullanma
  Yil := YearOf(TarihSaat);
  Ay  := MonthOf(TarihSaat);
  Gun := DayOf(TarihSaat);
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  TarihSaat: TDateTime;</span></span>
<span class="line"><span style="color: #D4D4D4">  Yil, Ay, Gun, Saat, Dakika, Saniye, Milisaniye: </span><span style="color: #569CD6">Word</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  TarihSaat := Now; </span><span style="color: #6A9955">// Şu anki tarih ve saati alır</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// DecodeDate ile tarih bileşenlerini ayrıştırma</span></span>
<span class="line"><span style="color: #D4D4D4">  DecodeDate(TarihSaat, Yil, Ay, Gun);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// DecodeTime ile saat bileşenlerini ayrıştırma</span></span>
<span class="line"><span style="color: #D4D4D4">  DecodeTime(TarihSaat, Saat, Dakika, Saniye, Milisaniye);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// YearOf, MonthOf, DayOf fonksiyonlarını kullanma</span></span>
<span class="line"><span style="color: #D4D4D4">  Yil := YearOf(TarihSaat);</span></span>
<span class="line"><span style="color: #D4D4D4">  Ay  := MonthOf(TarihSaat);</span></span>
<span class="line"><span style="color: #D4D4D4">  Gun := DayOf(TarihSaat);</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading">TDateTime ile Aritmetik İşlemler</h3>



<p>TDateTime, tarih ve saatler üzerinde aritmetik işlemler yapmayı kolaylaştırır. Örneğin, iki tarih arasındaki farkı hesaplayabilir, bir tarihe gün ekleyebilir veya çıkarabilirsiniz.</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(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="
var
  Tarih1, Tarih2: TDateTime;
  Fark: Double;
begin
  Tarih1 := EncodeDate(2024, 10, 27);
  Tarih2 := EncodeDate(2024, 10, 30);

  // İki tarih arasındaki farkı gün cinsinden hesaplar
  Fark := Tarih2 - Tarih1;

  // Bir tarihe gün ekleme
  Tarih1 := Tarih1 + 7; // Tarih1'e 7 gün ekler
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  Tarih1, Tarih2: TDateTime;</span></span>
<span class="line"><span style="color: #D4D4D4">  Fark: </span><span style="color: #569CD6">Double</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  Tarih1 := EncodeDate(</span><span style="color: #B5CEA8">2024</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">27</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  Tarih2 := EncodeDate(</span><span style="color: #B5CEA8">2024</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">30</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// İki tarih arasındaki farkı gün cinsinden hesaplar</span></span>
<span class="line"><span style="color: #D4D4D4">  Fark := Tarih2 - Tarih1;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Bir tarihe gün ekleme</span></span>
<span class="line"><span style="color: #D4D4D4">  Tarih1 := Tarih1 + </span><span style="color: #B5CEA8">7</span><span style="color: #D4D4D4">; </span><span style="color: #6A9955">// Tarih1&#39;e 7 gün ekler</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<h2 class="wp-block-heading">Tarih ve Saat Biçimlendirme</h2>



<p>TDateTime değerlerini kullanıcıya daha anlaşılır bir şekilde sunmak için biçimlendirme önemlidir. Delphi, tarih ve saatleri biçimlendirmek için <strong>FormatDateTime</strong> fonksiyonunu sunar. Bu fonksiyon, bir TDateTime değeri ve bir biçim stringi alır ve biçimlendirilmiş bir string döndürü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(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="
var
  TarihSaat: TDateTime;
  BicimlendirilmisTarih: string;
begin
  TarihSaat := Now;

  // Tarihi belirli bir formatta biçimlendirme
  BicimlendirilmisTarih := FormatDateTime('dd.mm.yyyy hh:nn:ss', TarihSaat);

  // Farklı bir formatta biçimlendirme
  BicimlendirilmisTarih := FormatDateTime('yyyy-mm-dd', TarihSaat);
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  TarihSaat: TDateTime;</span></span>
<span class="line"><span style="color: #D4D4D4">  BicimlendirilmisTarih: </span><span style="color: #569CD6">string</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  TarihSaat := Now;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Tarihi belirli bir formatta biçimlendirme</span></span>
<span class="line"><span style="color: #D4D4D4">  BicimlendirilmisTarih := FormatDateTime(</span><span style="color: #CE9178">&#39;dd.mm.yyyy hh:nn:ss&#39;</span><span style="color: #D4D4D4">, TarihSaat);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Farklı bir formatta biçimlendirme</span></span>
<span class="line"><span style="color: #D4D4D4">  BicimlendirilmisTarih := FormatDateTime(</span><span style="color: #CE9178">&#39;yyyy-mm-dd&#39;</span><span style="color: #D4D4D4">, TarihSaat);</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>FormatDateTime fonksiyonunda kullanılabilecek bazı yaygın biçim belirteçleri şunlardır:</p>



<ul class="wp-block-list">
<li><code>dd</code>: Gün (01-31)</li>



<li><code>mm</code>: Ay (01-12)</li>



<li><code>yyyy</code>: Yıl (dört haneli)</li>



<li><code>yy</code>: Yıl (iki haneli)</li>



<li><code>hh</code>: Saat (00-23)</li>



<li><code>nn</code>: Dakika (00-59)</li>



<li><code>ss</code>: Saniye (00-59)</li>



<li><code>zzz</code>: Milisaniye (000-999)</li>



<li><code>ddd</code>: Haftanın günü (kısaltılmış)</li>



<li><code>dddd</code>: Haftanın günü (tam)</li>



<li><code>mmm</code>: Ay (kısaltılmış)</li>



<li><code>mmmm</code>: Ay (tam)</li>
</ul>



<h2 class="wp-block-heading">Örnek Uygulama: Kronometre</h2>



<p>Aşağıdaki örnek, Delphi&#8217;de basit bir kronometre uygulamasının nasıl oluşturulabileceğini göstermektedir. Bu uygulama, <strong>Timer</strong> bileşenini ve TDateTime&#8217;ı kullanarak geçen süreyi hesaplar.</p>



<p>Bu örneği çalıştırmak için öncelikle Delphi&#8217;de yeni bir VCL Forms Application oluşturun. Form üzerine bir adet <strong>TButton</strong>, bir adet <strong>TLabel</strong> ve bir adet <strong>TTimer</strong> bileşeni ekleyin. Timer bileşeninin Enabled özelliğini False olarak ayarlayın.</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(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="
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    StartTime: TDateTime;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Timer1.Enabled then
  begin
    Timer1.Enabled := False;
    Button1.Caption := 'Başlat';
  end
  else
  begin
    StartTime := Now;
    Timer1.Enabled := True;
    Button1.Caption := 'Durdur';
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  ElapsedTime: TDateTime;
begin
  ElapsedTime := Now - StartTime;
  Label1.Caption := FormatDateTime('nn:ss:zzz', ElapsedTime);
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">unit</span><span style="color: #D4D4D4"> Unit1;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">interface</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">uses</span></span>
<span class="line"><span style="color: #D4D4D4">  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,</span></span>
<span class="line"><span style="color: #D4D4D4">  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">type</span></span>
<span class="line"><span style="color: #D4D4D4">  TForm1 = </span><span style="color: #569CD6">class</span><span style="color: #D4D4D4">(TForm)</span></span>
<span class="line"><span style="color: #D4D4D4">    Button1: TButton;</span></span>
<span class="line"><span style="color: #D4D4D4">    Label1: TLabel;</span></span>
<span class="line"><span style="color: #D4D4D4">    Timer1: TTimer;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">procedure</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Button1Click</span><span style="color: #D4D4D4">(Sender: TObject);</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">procedure</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Timer1Timer</span><span style="color: #D4D4D4">(Sender: TObject);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">private</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955">{ Private declarations }</span></span>
<span class="line"><span style="color: #D4D4D4">    StartTime: TDateTime;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">public</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955">{ Public declarations }</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>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  Form1: TForm1;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">implementation</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D16969">{$R *.dfm}</span></span>
<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">  </span><span style="color: #569CD6">if</span><span style="color: #D4D4D4"> Timer1.Enabled </span><span style="color: #569CD6">then</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">    Timer1.Enabled := </span><span style="color: #569CD6">False</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    Button1.Caption := </span><span style="color: #CE9178">&#39;Başlat&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">end</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">else</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">    StartTime := Now;</span></span>
<span class="line"><span style="color: #D4D4D4">    Timer1.Enabled := </span><span style="color: #569CD6">True</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    Button1.Caption := </span><span style="color: #CE9178">&#39;Durdur&#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>
<span class="line"><span style="color: #569CD6">procedure</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">TForm1.Timer1Timer</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">  ElapsedTime: TDateTime;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  ElapsedTime := Now - StartTime;</span></span>
<span class="line"><span style="color: #D4D4D4">  Label1.Caption := FormatDateTime(</span><span style="color: #CE9178">&#39;nn:ss:zzz&#39;</span><span style="color: #D4D4D4">, ElapsedTime);</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">.</span></span>
<span class="line"></span></code></pre></div>



<p>Formun <code>.dfm</code> dosyası (isteğe bağlı):</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(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="
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Kronometre'
  ClientHeight = 150
  ClientWidth = 300
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Button1: TButton
    Left = 112
    Top = 24
    Width = 75
    Height = 25
    Caption = 'Başlat'
    TabOrder = 0
    OnClick = Button1Click
  end
  object Label1: TLabel
    Left = 120
    Top = 72
    Width = 58
    Height = 13
    Caption = '00:00:000'
    TabOrder = 1
  end
  object Timer1: TTimer
    Interval = 1
    OnTimer = Timer1Timer
  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">object</span><span style="color: #D4D4D4"> Form1: TForm1</span></span>
<span class="line"><span style="color: #D4D4D4">  Left = </span><span style="color: #B5CEA8">0</span></span>
<span class="line"><span style="color: #D4D4D4">  Top = </span><span style="color: #B5CEA8">0</span></span>
<span class="line"><span style="color: #D4D4D4">  Caption = </span><span style="color: #CE9178">&#39;Kronometre&#39;</span></span>
<span class="line"><span style="color: #D4D4D4">  ClientHeight = </span><span style="color: #B5CEA8">150</span></span>
<span class="line"><span style="color: #D4D4D4">  ClientWidth = </span><span style="color: #B5CEA8">300</span></span>
<span class="line"><span style="color: #D4D4D4">  Color = clBtnFace</span></span>
<span class="line"><span style="color: #D4D4D4">  Font.Charset = DEFAULT_CHARSET</span></span>
<span class="line"><span style="color: #D4D4D4">  Font.Color = clWindowText</span></span>
<span class="line"><span style="color: #D4D4D4">  Font.Height = -</span><span style="color: #B5CEA8">11</span></span>
<span class="line"><span style="color: #D4D4D4">  Font.</span><span style="color: #569CD6">Name</span><span style="color: #D4D4D4"> = </span><span style="color: #CE9178">&#39;Tahoma&#39;</span></span>
<span class="line"><span style="color: #D4D4D4">  Font.Style = []</span></span>
<span class="line"><span style="color: #D4D4D4">  OldCreateOrder = </span><span style="color: #569CD6">False</span></span>
<span class="line"><span style="color: #D4D4D4">  PixelsPerInch = </span><span style="color: #B5CEA8">96</span></span>
<span class="line"><span style="color: #D4D4D4">  TextHeight = </span><span style="color: #B5CEA8">13</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">object</span><span style="color: #D4D4D4"> Button1: TButton</span></span>
<span class="line"><span style="color: #D4D4D4">    Left = </span><span style="color: #B5CEA8">112</span></span>
<span class="line"><span style="color: #D4D4D4">    Top = </span><span style="color: #B5CEA8">24</span></span>
<span class="line"><span style="color: #D4D4D4">    Width = </span><span style="color: #B5CEA8">75</span></span>
<span class="line"><span style="color: #D4D4D4">    Height = </span><span style="color: #B5CEA8">25</span></span>
<span class="line"><span style="color: #D4D4D4">    Caption = </span><span style="color: #CE9178">&#39;Başlat&#39;</span></span>
<span class="line"><span style="color: #D4D4D4">    TabOrder = </span><span style="color: #B5CEA8">0</span></span>
<span class="line"><span style="color: #D4D4D4">    OnClick = Button1Click</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">end</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">object</span><span style="color: #D4D4D4"> Label1: TLabel</span></span>
<span class="line"><span style="color: #D4D4D4">    Left = </span><span style="color: #B5CEA8">120</span></span>
<span class="line"><span style="color: #D4D4D4">    Top = </span><span style="color: #B5CEA8">72</span></span>
<span class="line"><span style="color: #D4D4D4">    Width = </span><span style="color: #B5CEA8">58</span></span>
<span class="line"><span style="color: #D4D4D4">    Height = </span><span style="color: #B5CEA8">13</span></span>
<span class="line"><span style="color: #D4D4D4">    Caption = </span><span style="color: #CE9178">&#39;00:00:000&#39;</span></span>
<span class="line"><span style="color: #D4D4D4">    TabOrder = </span><span style="color: #B5CEA8">1</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">end</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">object</span><span style="color: #D4D4D4"> Timer1: TTimer</span></span>
<span class="line"><span style="color: #D4D4D4">    Interval = </span><span style="color: #B5CEA8">1</span></span>
<span class="line"><span style="color: #D4D4D4">    OnTimer = Timer1Timer</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">end</span></span>
<span class="line"><span style="color: #569CD6">end</span></span>
<span class="line"></span></code></pre></div>



<p>Bu örnekte, Timer bileşeninin Interval özelliği 1 milisaniyeye ayarlanmıştır. Bu, Timer&#8217;ın her milisaniyede bir Timer1Timer olayını tetiklemesini sağlar. Timer1Timer olayında, geçen süre hesaplanır ve Label1 bileşeninde görüntülenir.</p>



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



<p>Delphi&#8217;de <strong>TDateTime</strong> veri tipi, tarih ve saatlerle çalışmayı son derece kolaylaştırır. Bu makalede, TDateTime&#8217;ın ne olduğunu, nasıl kullanıldığını ve tarih/saat bilgilerini nasıl biçimlendirebileceğinizi öğrendiniz. Ayrıca, basit bir kronometre uygulaması örneğiyle TDateTime&#8217;ın pratik kullanımını gördünüz. Bu bilgilerle, Delphi projelerinizde tarih ve saat işlemlerini etkili bir şekilde yönetebilirsiniz.</p>
<p><a href="https://www.kesifruhu.com/yazilim/10-tarih-ve-saat-islemleri-tdatetime-kullanimi/">10. Tarih ve Saat İşlemleri (TDateTime Kullanımı)</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/10-tarih-ve-saat-islemleri-tdatetime-kullanimi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>9. String İşlemleri (String Manipülasyonu ve Formatlama)</title>
		<link>https://www.kesifruhu.com/yazilim/9-string-islemleri-string-manipulasyonu-ve-formatlama/</link>
					<comments>https://www.kesifruhu.com/yazilim/9-string-islemleri-string-manipulasyonu-ve-formatlama/#respond</comments>
		
		<dc:creator><![CDATA[darklaz]]></dc:creator>
		<pubDate>Sun, 20 Apr 2025 19:26:46 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[Delphi Dersleri]]></category>
		<category><![CDATA[String Formatlama]]></category>
		<category><![CDATA[String İşlemleri]]></category>
		<category><![CDATA[String Manipulasyonu]]></category>
		<guid isPermaLink="false">https://www.kesifruhu.com/?p=544</guid>

					<description><![CDATA[<p>9. String İşlemleri (String Manipülasyonu ve Formatlama) Delphi programlama dilinde, metin verileriyle çalışmak, birçok uygulamanın temelini oluşturur. Kullanıcı arayüzlerinden veri tabanlarına, dosya işlemlerinden ağ iletişimine <a class="mh-excerpt-more" href="https://www.kesifruhu.com/yazilim/9-string-islemleri-string-manipulasyonu-ve-formatlama/" title="9. String İşlemleri (String Manipülasyonu ve Formatlama)">[...]</a></p>
<p><a href="https://www.kesifruhu.com/yazilim/9-string-islemleri-string-manipulasyonu-ve-formatlama/">9. String İşlemleri (String Manipülasyonu ve Formatlama)</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/4164418/pexels-photo-4164418.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">9. String İşlemleri (String Manipülasyonu ve Formatlama)</h1>



<p>Delphi programlama dilinde, metin verileriyle çalışmak, birçok uygulamanın temelini oluşturur. Kullanıcı arayüzlerinden veri tabanlarına, dosya işlemlerinden ağ iletişimine kadar her alanda stringlerle etkileşim halindeyiz. Delphi, string manipulasyonu ve formatlama için zengin bir araç seti sunar. Bu makalede, Delphi&#8217;de stringlerle nasıl etkili bir şekilde çalışabileceğinizi, farklı string fonksiyonlarını ve formatlama tekniklerini detaylı bir şekilde inceleyeceğiz.</p>



<h2 class="wp-block-heading">String Tanımlama ve Kullanımı</h2>



<p>Delphi&#8217;de stringler, <code>String</code> veri tipiyle tanımlanır. Delphi&#8217;nin modern versiyonlarında (Delphi 2009 ve sonrası), <code>UnicodeString</code> kullanılır; bu da çok çeşitli karakter setlerini destekleyerek global uygulamalar geliştirmeyi kolaylaştırır. Temel string tanımlama ve kullanma örneklerine bakalım:</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(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="
var
  isim: String;
  soyisim: String;
  tamAd: String;
begin
  isim := 'Ahmet';
  soyisim := 'Yılmaz';
  tamAd := isim + ' ' + soyisim; // String birleştirme
  ShowMessage(tamAd);
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">var</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">  soyisim: </span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  tamAd: </span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  isim := </span><span style="color: #CE9178">&#39;Ahmet&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  soyisim := </span><span style="color: #CE9178">&#39;Yılmaz&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  tamAd := isim + </span><span style="color: #CE9178">&#39; &#39;</span><span style="color: #D4D4D4"> + soyisim; </span><span style="color: #6A9955">// String birleştirme</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(tamAd);</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>Bu örnekte, iki string değişkeni tanımlayıp, değerlerini atadık ve ardından bu iki stringi birleştirerek yeni bir string oluşturduk. <code>+</code> operatörü, Delphi&#8217;de string birleştirme için kullanılır.</p>



<h2 class="wp-block-heading">Temel String Fonksiyonları</h2>



<p>Delphi, stringlerle çalışmayı kolaylaştıran birçok yerleşik fonksiyon sunar. İşte en sık kullanılanlardan bazıları:</p>



<ul class="wp-block-list">
<li><strong>Length(String):</strong> Bir stringin uzunluğunu (karakter sayısını) döndürür.</li>



<li><strong>Copy(String, Başlangıç, Adet):</strong> Bir stringin belirli bir bölümünü kopyalar.</li>



<li><strong>Pos(AltString, String):</strong> Bir alt stringin, bir string içindeki ilk konumunu bulur. Eğer alt string bulunamazsa, 0 döndürür.</li>



<li><strong>Delete(String, Başlangıç, Adet):</strong> Bir stringden belirli sayıda karakteri siler.</li>



<li><strong>Insert(AltString, String, Pozisyon):</strong> Bir stringin içine başka bir stringi ekler.</li>



<li><strong>UpperCase(String):</strong> Bir stringi tamamen büyük harfe çevirir.</li>



<li><strong>LowerCase(String):</strong> Bir stringi tamamen küçük harfe çevirir.</li>



<li><strong>Trim(String):</strong> Bir stringin başındaki ve sonundaki boşlukları temizler.</li>



<li><strong>TrimLeft(String):</strong> Bir stringin solundaki boşlukları temizler.</li>



<li><strong>TrimRight(String):</strong> Bir stringin sağındaki boşlukları temizler.</li>
</ul>



<h3 class="wp-block-heading">Örnek Kullanımlar</h3>



<p>Bu fonksiyonların nasıl kullanıldığına dair bazı örnekler görelim:</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(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="
var
  metin: String;
  uzunluk: Integer;
  altMetin: String;
  pozisyon: Integer;
begin
  metin := '  Merhaba Dünya!  ';
  uzunluk := Length(metin); // Uzunluk: 17 (boşluklarla birlikte)
  ShowMessage('Metnin uzunluğu: ' + IntToStr(uzunluk));

  altMetin := Copy(metin, 3, 7); // AltMetin: 'Merhaba'
  ShowMessage('Alt metin: ' + altMetin);

  pozisyon := Pos('Dünya', metin); // Pozisyon: 12
  ShowMessage('Dünya kelimesinin pozisyonu: ' + IntToStr(pozisyon));

  Delete(metin, 1, 2); // Metin: 'Merhaba Dünya!  ' (baştaki boşluklar silindi)
  ShowMessage('Silinmiş metin: ' + metin);

  Insert('Yeni ', metin, 9); // Metin: 'Merhaba Yeni Dünya!  '
  ShowMessage('Eklenmiş metin: ' + metin);

  metin := Trim(metin); // Metin: 'Merhaba Yeni Dünya!' (baştaki ve sondaki boşluklar silindi)
  ShowMessage('Trimlenmiş metin: ' + metin);
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  metin: </span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  uzunluk: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  altMetin: </span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  pozisyon: </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">  metin := </span><span style="color: #CE9178">&#39;  Merhaba Dünya!  &#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  uzunluk := Length(metin); </span><span style="color: #6A9955">// Uzunluk: 17 (boşluklarla birlikte)</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Metnin uzunluğu: &#39;</span><span style="color: #D4D4D4"> + IntToStr(uzunluk));</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  altMetin := </span><span style="color: #569CD6">Copy</span><span style="color: #D4D4D4">(metin, </span><span style="color: #B5CEA8">3</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">7</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// AltMetin: &#39;Merhaba&#39;</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Alt metin: &#39;</span><span style="color: #D4D4D4"> + altMetin);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  pozisyon := Pos(</span><span style="color: #CE9178">&#39;Dünya&#39;</span><span style="color: #D4D4D4">, metin); </span><span style="color: #6A9955">// Pozisyon: 12</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Dünya kelimesinin pozisyonu: &#39;</span><span style="color: #D4D4D4"> + IntToStr(pozisyon));</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  Delete(metin, </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">2</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// Metin: &#39;Merhaba Dünya!  &#39; (baştaki boşluklar silindi)</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Silinmiş metin: &#39;</span><span style="color: #D4D4D4"> + metin);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  Insert(</span><span style="color: #CE9178">&#39;Yeni &#39;</span><span style="color: #D4D4D4">, metin, </span><span style="color: #B5CEA8">9</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// Metin: &#39;Merhaba Yeni Dünya!  &#39;</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Eklenmiş metin: &#39;</span><span style="color: #D4D4D4"> + metin);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  metin := Trim(metin); </span><span style="color: #6A9955">// Metin: &#39;Merhaba Yeni Dünya!&#39; (baştaki ve sondaki boşluklar silindi)</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Trimlenmiş metin: &#39;</span><span style="color: #D4D4D4"> + metin);</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<h2 class="wp-block-heading">String Formatlama</h2>



<p>String formatlama, değişken değerlerini belirli bir düzende bir stringe yerleştirmek için kullanılır. Delphi, bu işlem için <code>Format</code> fonksiyonunu ve <code>FormatFloat</code> fonksiyonunu sunar.</p>



<h3 class="wp-block-heading">Format Fonksiyonu</h3>



<p><code>Format</code> fonksiyonu, genel amaçlı formatlama için kullanılır. Biçimlendirme stringi ve bir dizi parametre alı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(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="
var
  ad: String;
  yas: Integer;
  mesaj: String;
begin
  ad := 'Ayşe';
  yas := 25;
  mesaj := Format('Merhaba, %s! Yaşınız: %d', [ad, yas]);
  ShowMessage(mesaj); // Çıktı: Merhaba, Ayşe! Yaşınız: 25
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  ad: </span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  yas: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  mesaj: </span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  ad := </span><span style="color: #CE9178">&#39;Ayşe&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  yas := </span><span style="color: #B5CEA8">25</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  mesaj := Format(</span><span style="color: #CE9178">&#39;Merhaba, %s! Yaşınız: %d&#39;</span><span style="color: #D4D4D4">, [ad, yas]);</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(mesaj); </span><span style="color: #6A9955">// Çıktı: Merhaba, Ayşe! Yaşınız: 25</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>Bu örnekte, <code>%s</code> stringleri, <code>%d</code> ise integer değerleri temsil eder. <code>Format</code> fonksiyonuna geçirilen dizi, bu yer tutucuların yerine konacak değerleri içerir.</p>



<h3 class="wp-block-heading">FormatFloat Fonksiyonu</h3>



<p><code>FormatFloat</code> fonksiyonu, ondalıklı sayıları belirli bir biçimde formatlamak için kullanılır. Özellikle para birimi veya hassas ölçümlerle çalışırken kullanışlıdı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(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="
var
  fiyat: Double;
  formatliFiyat: String;
begin
  fiyat := 1234.567;
  formatliFiyat := FormatFloat('0.00', fiyat); // İki ondalık basamaklı format
  ShowMessage('Fiyat: ' + formatliFiyat); // Çıktı: Fiyat: 1234.57 (yuvarlama yapılır)

  formatliFiyat := FormatFloat('#,##0.00', fiyat); // Binlik ayraçlı format
  ShowMessage('Fiyat: ' + formatliFiyat); // Çıktı: Fiyat: 1,234.57
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">var</span></span>
<span class="line"><span style="color: #D4D4D4">  fiyat: </span><span style="color: #569CD6">Double</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  formatliFiyat: </span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  fiyat := </span><span style="color: #B5CEA8">1234.567</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  formatliFiyat := FormatFloat(</span><span style="color: #CE9178">&#39;0.00&#39;</span><span style="color: #D4D4D4">, fiyat); </span><span style="color: #6A9955">// İki ondalık basamaklı format</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Fiyat: &#39;</span><span style="color: #D4D4D4"> + formatliFiyat); </span><span style="color: #6A9955">// Çıktı: Fiyat: 1234.57 (yuvarlama yapılır)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  formatliFiyat := FormatFloat(</span><span style="color: #CE9178">&#39;#,##0.00&#39;</span><span style="color: #D4D4D4">, fiyat); </span><span style="color: #6A9955">// Binlik ayraçlı format</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Fiyat: &#39;</span><span style="color: #D4D4D4"> + formatliFiyat); </span><span style="color: #6A9955">// Çıktı: Fiyat: 1,234.57</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>Bu örnekte, <code>'0.00'</code> format stringi, sayının iki ondalık basamakla gösterilmesini sağlar. <code>'#,##0.00'</code> ise binlik ayraçlarını ekler.</p>



<h2 class="wp-block-heading">String Builder Kullanımı</h2>



<p>Büyük string manipulasyonları yaparken, özellikle döngüler içinde string birleştirmeleri yaparken, performans sorunları yaşanabilir. Bu durumda <code>StringBuilder</code> sınıfını kullanmak daha verimli olabilir. <code>StringBuilder</code>, stringleri bellekte sürekli yeniden oluşturmak yerine, bir arabellek kullanarak stringleri bir araya getirir ve sonunda tek bir string olarak döndürü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(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="
uses
  System.SysUtils, System.Classes;

var
  i: Integer;
  sb: TStringBuilder;
  sonuc: String;
begin
  sb := TStringBuilder.Create;
  try
    for i := 1 to 1000 do
    begin
      sb.Append('Satır ' + IntToStr(i) + #13#10); // #13#10: Yeni satır karakteri
    end;
    sonuc := sb.ToString;
    // ShowMessage(sonuc); // Çok uzun olduğu için göstermiyoruz
  finally
    sb.Free;
  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">uses</span></span>
<span class="line"><span style="color: #D4D4D4">  System.SysUtils, System.Classes;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  i: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  sb: TStringBuilder;</span></span>
<span class="line"><span style="color: #D4D4D4">  sonuc: </span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  sb := TStringBuilder.Create;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">try</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> i := </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">to</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">1000</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">      sb.Append(</span><span style="color: #CE9178">&#39;Satır &#39;</span><span style="color: #D4D4D4"> + IntToStr(i) + </span><span style="color: #CE9178">#13#10</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// #13#10: Yeni satır karakteri</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: #D4D4D4">    sonuc := sb.ToString;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955">// ShowMessage(sonuc); // Çok uzun olduğu için göstermiyoruz</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">finally</span></span>
<span class="line"><span style="color: #D4D4D4">    sb.Free;</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>Bu örnekte, <code>TStringBuilder</code> nesnesi oluşturulur, döngü içinde stringler bu nesneye eklenir ve sonunda <code>ToString</code> metodu ile tek bir string elde edilir. <code>try...finally</code> bloğu, <code>StringBuilder</code> nesnesinin her durumda serbest bırakılmasını sağlar.</p>



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



<p>Delphi&#8217;de string işlemleri, uygulama geliştirmenin ayrılmaz bir parçasıdır. Bu makalede, temel string fonksiyonlarını, formatlama tekniklerini ve <code>StringBuilder</code> sınıfını kullanarak daha verimli string manipulasyonları yapmayı öğrendik. Bu bilgiler, Delphi projelerinizde metin verileriyle daha etkili bir şekilde çalışmanıza yardımcı olacaktır. <em>String manipulasyonu ve formatlama</em> konusundaki bu bilgilerle, uygulamalarınızı daha kullanıcı dostu ve işlevsel hale getirebilirsiniz.</p>
<p><a href="https://www.kesifruhu.com/yazilim/9-string-islemleri-string-manipulasyonu-ve-formatlama/">9. String İşlemleri (String Manipülasyonu ve Formatlama)</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/9-string-islemleri-string-manipulasyonu-ve-formatlama/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>8. Diziler (Arrays) ve Koleksiyonlar (List, Dictionary, vb.)</title>
		<link>https://www.kesifruhu.com/yazilim/8-diziler-arrays-ve-koleksiyonlar-list-dictionary-vb/</link>
					<comments>https://www.kesifruhu.com/yazilim/8-diziler-arrays-ve-koleksiyonlar-list-dictionary-vb/#respond</comments>
		
		<dc:creator><![CDATA[darklaz]]></dc:creator>
		<pubDate>Sat, 19 Apr 2025 10:22:57 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[TDictionary]]></category>
		<category><![CDATA[TList]]></category>
		<guid isPermaLink="false">https://www.kesifruhu.com/?p=539</guid>

					<description><![CDATA[<p>8. Diziler (Arrays) ve Koleksiyonlar (List, Dictionary, vb.) Delphi programlama dilinde, verileri düzenli bir şekilde saklamak ve yönetmek için diziler (arrays) ve koleksiyonlar (collections) önemli <a class="mh-excerpt-more" href="https://www.kesifruhu.com/yazilim/8-diziler-arrays-ve-koleksiyonlar-list-dictionary-vb/" title="8. Diziler (Arrays) ve Koleksiyonlar (List, Dictionary, vb.)">[...]</a></p>
<p><a href="https://www.kesifruhu.com/yazilim/8-diziler-arrays-ve-koleksiyonlar-list-dictionary-vb/">8. Diziler (Arrays) ve Koleksiyonlar (List, Dictionary, vb.)</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/247791/pexels-photo-247791.png?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">8. Diziler (Arrays) ve Koleksiyonlar (List, Dictionary, vb.)</h1>



<p>Delphi programlama dilinde, verileri düzenli bir şekilde saklamak ve yönetmek için diziler (arrays) ve koleksiyonlar (collections) önemli araçlardır. Bu yapılar, aynı türden birden fazla veriyi tek bir değişken adı altında toplamamızı ve bu verilere kolayca erişmemizi sağlar. Bu makalede, Delphi&#8217;de dizilerin ve koleksiyonların ne olduğunu, nasıl kullanıldığını ve hangi durumlarda tercih edilmesi gerektiğini detaylı bir şekilde inceleyeceğiz.</p>



<h2 class="wp-block-heading">Diziler (Arrays)</h2>



<p>Diziler, aynı türden verilerin sıralı bir şekilde saklandığı veri yapılarıdır. Delphi&#8217;de diziler statik veya dinamik olarak tanımlanabilir. Statik dizilerin boyutu derleme zamanında belirlenirken, dinamik dizilerin boyutu çalışma zamanında değiştirilebilir.</p>



<h3 class="wp-block-heading">Statik Diziler</h3>



<p>Statik diziler, boyutları önceden belirlenmiş olan dizilerdir. Tanımlanırken eleman sayısı belirtilir ve bu sayı programın çalışması sırasında değiştirilemez.</p>



<p><strong>Tanımlama:</strong></p>



<p>Statik bir dizi tanımlamak için aşağıdaki sözdizimi 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
  diziAdi: array[baslangicIndeksi..bitisIndeksi] of veriTipi;
" 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">  diziAdi: </span><span style="color: #569CD6">array</span><span style="color: #D4D4D4">[baslangicIndeksi..bitisIndeksi] </span><span style="color: #569CD6">of</span><span style="color: #D4D4D4"> veriTipi;</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<p><strong>Örnek:</strong></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
  sayilar: array[1..5] of Integer;
  isimler: array[0..9] of String;
" 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">  sayilar: </span><span style="color: #569CD6">array</span><span style="color: #D4D4D4">[</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">.</span><span style="color: #B5CEA8">.5</span><span style="color: #D4D4D4">] </span><span style="color: #569CD6">of</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  isimler: </span><span style="color: #569CD6">array</span><span style="color: #D4D4D4">[</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">.</span><span style="color: #B5CEA8">.9</span><span style="color: #D4D4D4">] </span><span style="color: #569CD6">of</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p>Bu örnekte, <code>sayilar</code> adında 1&#8217;den 5&#8217;e kadar indekslere sahip integer türünde bir dizi ve <code>isimler</code> adında 0&#8217;dan 9&#8217;a kadar indekslere sahip string türünde bir dizi tanımlanmıştır.</p>



<p><strong>Değer Atama ve Erişim:</strong></p>



<p>Dizinin elemanlarına değer atamak ve erişmek için indeksler 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="sayilar[1] := 10;
sayilar[2] := 20;

var ilkSayi: Integer := sayilar[1];
" 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">sayilar[</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">] := </span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">sayilar[</span><span style="color: #B5CEA8">2</span><span style="color: #D4D4D4">] := </span><span style="color: #B5CEA8">20</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">var</span><span style="color: #D4D4D4"> ilkSayi: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4"> := sayilar[</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">];</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<h3 class="wp-block-heading">Dinamik Diziler</h3>



<p>Dinamik diziler, boyutları çalışma zamanında belirlenen ve değiştirilebilen dizilerdir. Bu, programın ihtiyaçlarına göre dizi boyutunu ayarlama esnekliği sağlar.</p>



<p><strong>Tanımlama:</strong></p>



<p>Dinamik bir dizi tanımlamak için aşağıdaki sözdizimi 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
  diziAdi: array of veriTipi;
" 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">  diziAdi: </span><span style="color: #569CD6">array</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">of</span><span style="color: #D4D4D4"> veriTipi;</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<p><strong>Örnek:</strong></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
  notlar: array of Double;
  ogrenciIsimleri: array of String;
" 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">  notlar: </span><span style="color: #569CD6">array</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">of</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">Double</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  ogrenciIsimleri: </span><span style="color: #569CD6">array</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">of</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p>Bu örnekte, <code>notlar</code> adında double türünde ve <code>ogrenciIsimleri</code> adında string türünde dinamik diziler tanımlanmıştır. Ancak, bu dizilerin boyutları henüz belirlenmemiştir.</p>



<p><strong>Boyutlandırma:</strong></p>



<p>Dinamik dizilerin boyutunu belirlemek için <code>SetLength</code> fonksiyonu 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="SetLength(notlar, 100); // notlar dizisinin boyutunu 100 olarak ayarla
SetLength(ogrenciIsimleri, 50); // ogrenciIsimleri dizisinin boyutunu 50 olarak ayarla
" 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">SetLength(notlar, </span><span style="color: #B5CEA8">100</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// notlar dizisinin boyutunu 100 olarak ayarla</span></span>
<span class="line"><span style="color: #D4D4D4">SetLength(ogrenciIsimleri, </span><span style="color: #B5CEA8">50</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// ogrenciIsimleri dizisinin boyutunu 50 olarak ayarla</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<p><strong>Değer Atama ve Erişim:</strong></p>



<p>Dinamik dizilerin elemanlarına değer atamak ve erişmek için statik dizilerde olduğu gibi indeksler 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="notlar[0] := 95.5;
ogrenciIsimleri[0] := 'Ahmet';
" 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">notlar[</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">] := </span><span style="color: #B5CEA8">95.5</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">ogrenciIsimleri[</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">] := </span><span style="color: #CE9178">&#39;Ahmet&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<h2 class="wp-block-heading">Koleksiyonlar (Collections)</h2>



<p>Koleksiyonlar, dizilere göre daha esnek ve gelişmiş veri yapılarıdır. Delphi&#8217;de birçok farklı koleksiyon türü bulunur. Bunlardan bazıları şunlardır:</p>



<ul class="wp-block-list">
<li><strong>TList:</strong> Sıralı bir liste oluşturmak için kullanılır.</li>



<li><strong>TDictionary:</strong> Anahtar-değer çiftlerini saklamak için kullanılır.</li>



<li><strong>TStringList:</strong> String türündeki verileri saklamak ve yönetmek için kullanılır.</li>



<li><strong>TQueue:</strong> İlk giren ilk çıkar (FIFO) prensibine göre çalışan bir kuyruk yapısıdır.</li>



<li><strong>TStack:</strong> Son giren ilk çıkar (LIFO) prensibine göre çalışan bir yığın yapısıdır.</li>
</ul>



<h3 class="wp-block-heading">TList</h3>



<p><code>TList</code>, nesneleri veya pointer&#8217;ları saklamak için kullanılan sıralı bir listedir. Dinamik olarak büyüyebilir ve küçülebilir.</p>



<p><strong>Kullanımı:</strong></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(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="uses
  System.Generics.Collections;

var
  liste: TList<Integer&gt;;
  i: Integer;
begin
  liste := TList<Integer&gt;.Create;
  try
    liste.Add(10);
    liste.Add(20);
    liste.Add(30);

    for i := 0 to liste.Count - 1 do
      ShowMessage(IntToStr(liste[i]));
  finally
    liste.Free;
  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 style="color: #569CD6">uses</span></span>
<span class="line"><span style="color: #D4D4D4">  System.Generics.Collections;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  liste: TList&lt;</span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">&gt;;</span></span>
<span class="line"><span style="color: #D4D4D4">  i: </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">  liste := TList&lt;</span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">&gt;.Create;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">try</span></span>
<span class="line"><span style="color: #D4D4D4">    liste.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    liste.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">20</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    liste.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">30</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> i := </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">to</span><span style="color: #D4D4D4"> liste.Count - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">      ShowMessage(IntToStr(liste[i]));</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">finally</span></span>
<span class="line"><span style="color: #D4D4D4">    liste.Free;</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>



<h3 class="wp-block-heading">TDictionary</h3>



<p><code>TDictionary</code>, anahtar-değer çiftlerini saklamak için kullanılan bir koleksiyondur. Her anahtar benzersiz olmalıdır. Bu yapı, verilere anahtar üzerinden hızlı erişim sağlar.</p>



<p><strong>Kullanımı:</strong></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(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="uses
  System.Generics.Collections;

var
  sozluk: TDictionary<String, Integer&gt;;
begin
  sozluk := TDictionary<String, Integer&gt;.Create;
  try
    sozluk.Add('Ahmet', 25);
    sozluk.Add('Ayşe', 30);

    ShowMessage(IntToStr(sozluk['Ahmet'])); // 25
  finally
    sozluk.Free;
  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 style="color: #569CD6">uses</span></span>
<span class="line"><span style="color: #D4D4D4">  System.Generics.Collections;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  sozluk: TDictionary&lt;</span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">, </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">&gt;;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  sozluk := TDictionary&lt;</span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">, </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">&gt;.Create;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">try</span></span>
<span class="line"><span style="color: #D4D4D4">    sozluk.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&#39;Ahmet&#39;</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">25</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    sozluk.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&#39;Ayşe&#39;</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">30</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    ShowMessage(IntToStr(sozluk[</span><span style="color: #CE9178">&#39;Ahmet&#39;</span><span style="color: #D4D4D4">])); </span><span style="color: #6A9955">// 25</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">finally</span></span>
<span class="line"><span style="color: #D4D4D4">    sozluk.Free;</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>



<h3 class="wp-block-heading">TStringList</h3>



<p><code>TStringList</code>, string türündeki verileri saklamak ve yönetmek için özel olarak tasarlanmış bir koleksiyondur. Metin dosyalarını okuma, yazma, sıralama ve arama gibi işlemler için kullanışlı yöntemler sunar.</p>



<p><strong>Kullanımı:</strong></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(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="var
  stringList: TStringList;
  i: Integer;
begin
  stringList := TStringList.Create;
  try
    stringList.Add('Elma');
    stringList.Add('Armut');
    stringList.Add('Kiraz');

    for i := 0 to stringList.Count - 1 do
      ShowMessage(stringList[i]);
  finally
    stringList.Free;
  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 style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  stringList: TStringList;</span></span>
<span class="line"><span style="color: #D4D4D4">  i: </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">  stringList := TStringList.Create;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">try</span></span>
<span class="line"><span style="color: #D4D4D4">    stringList.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&#39;Elma&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    stringList.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&#39;Armut&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    stringList.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&#39;Kiraz&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> i := </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">to</span><span style="color: #D4D4D4"> stringList.Count - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">      ShowMessage(stringList[i]);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">finally</span></span>
<span class="line"><span style="color: #D4D4D4">    stringList.Free;</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>



<h2 class="wp-block-heading">Diziler mi, Koleksiyonlar mı?</h2>



<p>Diziler ve koleksiyonlar arasındaki temel farklar ve ne zaman hangisinin tercih edilmesi gerektiği aşağıda özetlenmiştir:</p>



<ul class="wp-block-list">
<li><strong>Boyut Esnekliği:</strong> Dinamik dizilerin boyutu çalışma zamanında değiştirilebilirken, statik dizilerin boyutu sabittir. Koleksiyonlar genellikle dinamik olarak büyüyebilir ve küçülebilir.</li>



<li><strong>Veri Türü:</strong> Diziler belirli bir veri türündeki elemanları saklarken, bazı koleksiyonlar (örneğin <code>TList</code>) farklı türdeki nesneleri saklayabilir. Ancak, tipleri önceden belirtmek generic koleksiyonlar ile mümkündür.</li>



<li><strong>Fonksiyonellik:</strong> Koleksiyonlar, dizilere göre daha fazla fonksiyonellik sunar. Örneğin, <code>TStringList</code> metin dosyalarını okuma/yazma, sıralama ve arama gibi işlemleri kolaylaştıran yöntemler içerir.</li>



<li><strong>Performans:</strong> Dizilere erişim genellikle koleksiyonlara göre daha hızlıdır. Ancak, koleksiyonların sunduğu ek fonksiyonellik ve esneklik, bazı durumlarda performanstan ödün vermeye değer olabilir.</li>
</ul>



<p><strong>Genel olarak:</strong></p>



<ul class="wp-block-list">
<li>Eğer boyutun önceden bilindiği ve nadiren değiştiği durumlarda diziler tercih edilebilir.</li>



<li>Eğer boyutun çalışma zamanında değişmesi gerekiyorsa veya daha fazla fonksiyonelliğe ihtiyaç varsa koleksiyonlar daha uygun olabilir.</li>
</ul>



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



<p>Delphi&#8217;de diziler ve koleksiyonlar, verileri düzenli bir şekilde saklamak ve yönetmek için güçlü araçlardır. Diziler, aynı türden verileri sıralı bir şekilde saklarken, koleksiyonlar daha esnek ve gelişmiş veri yapılarıdır. Hangi yapının kullanılacağı, uygulamanın gereksinimlerine ve performans ihtiyaçlarına bağlıdır. Bu makalede, dizilerin ve koleksiyonların temel kavramlarını, kullanım örneklerini ve ne zaman hangisinin tercih edilmesi gerektiğini ayrıntılı olarak inceledik. Bu bilgiler, Delphi projelerinizde daha etkili veri yönetimi stratejileri geliştirmenize yardımcı olacaktır.</p>
<p><a href="https://www.kesifruhu.com/yazilim/8-diziler-arrays-ve-koleksiyonlar-list-dictionary-vb/">8. Diziler (Arrays) ve Koleksiyonlar (List, Dictionary, vb.)</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/8-diziler-arrays-ve-koleksiyonlar-list-dictionary-vb/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>7. Prosedürler ve Fonksiyonlar (Metotlar)</title>
		<link>https://www.kesifruhu.com/yazilim/7-prosedurler-ve-fonksiyonlar-metotlar/</link>
					<comments>https://www.kesifruhu.com/yazilim/7-prosedurler-ve-fonksiyonlar-metotlar/#respond</comments>
		
		<dc:creator><![CDATA[darklaz]]></dc:creator>
		<pubDate>Fri, 18 Apr 2025 15:27:48 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Prosedür]]></category>
		<guid isPermaLink="false">https://www.kesifruhu.com/?p=520</guid>

					<description><![CDATA[<p>7. Prosedürler ve Fonksiyonlar (Metotlar) Delphi programlama dilinde, kodun düzenlenmesi, yeniden kullanılabilirliğinin artırılması ve karmaşıklığının azaltılması için prosedürler ve fonksiyonlar (genellikle metotlar olarak da adlandırılır) <a class="mh-excerpt-more" href="https://www.kesifruhu.com/yazilim/7-prosedurler-ve-fonksiyonlar-metotlar/" title="7. Prosedürler ve Fonksiyonlar (Metotlar)">[...]</a></p>
<p><a href="https://www.kesifruhu.com/yazilim/7-prosedurler-ve-fonksiyonlar-metotlar/">7. Prosedürler ve Fonksiyonlar (Metotlar)</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/247791/pexels-photo-247791.png?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">7. Prosedürler ve Fonksiyonlar (Metotlar)</h1>



<p>Delphi programlama dilinde, kodun düzenlenmesi, yeniden kullanılabilirliğinin artırılması ve karmaşıklığının azaltılması için <strong>prosedürler</strong> ve <strong>fonksiyonlar</strong> (genellikle metotlar olarak da adlandırılır) önemli bir rol oynar. Bu yapılar, belirli bir görevi gerçekleştiren kod bloklarını temsil eder ve programın farklı yerlerinden çağrılarak tekrar tekrar kullanılabilir.</p>



<h2 class="wp-block-heading">Prosedürler</h2>



<p><strong>Prosedürler</strong>, belirli bir işlemi gerçekleştiren ve herhangi bir değer döndürmeyen kod bloklarıdır. Bir prosedür, parametre alabilir veya almayabilir. Parametreler, prosedüre girdi olarak sağlanan değerlerdir ve prosedürün davranışını etkiler.</p>



<h3 class="wp-block-heading">Prosedür Tanımlama</h3>



<p>Bir prosedür aşağıdaki gibi 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="procedure ProsedurAdi(Parametre1: VeriTipi; Parametre2: VeriTipi);
begin
  // Prosedürün gerçekleştireceği işlemler
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">procedure</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">ProsedurAdi</span><span style="color: #D4D4D4">(Parametre1: VeriTipi; Parametre2: VeriTipi);</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Prosedürün gerçekleştireceği işlemler</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span></code></pre></div>



<p>Örneğin, iki sayıyı toplayıp sonucu ekrana yazdıran bir prosedür şöyle olabilir:</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="procedure ToplaVeYaz(Sayi1: Integer; Sayi2: Integer);
var
  Sonuc: Integer;
begin
  Sonuc := Sayi1 + Sayi2;
  ShowMessage('Sonuç: ' + IntToStr(Sonuc));
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">procedure</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">ToplaVeYaz</span><span style="color: #D4D4D4">(Sayi1: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">; Sayi2: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  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">  Sonuc := Sayi1 + Sayi2;</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Sonuç: &#39;</span><span style="color: #D4D4D4"> + IntToStr(Sonuc));</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span></code></pre></div>



<p></p>



<h3 class="wp-block-heading">Prosedür Çağırma</h3>



<p>Bir prosedürü çağırmak için adını ve varsa parametrelerini belirtmeniz yeterlidir:</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="ToplaVeYaz(5, 3); // Ekrana &quot;Sonuç: 8&quot; yazdırır" 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">ToplaVeYaz(</span><span style="color: #B5CEA8">5</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">3</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// Ekrana &quot;Sonuç: 8&quot; yazdırır</span></span></code></pre></div>



<p></p>



<h2 class="wp-block-heading">Fonksiyonlar</h2>



<p><strong>Fonksiyonlar</strong>, prosedürlere benzer, ancak bir değer döndürürler. Bu değer, fonksiyonun gerçekleştirdiği işlemin sonucudur. Fonksiyonlar da parametre alabilir veya almayabilir.</p>



<h3 class="wp-block-heading">Fonksiyon Tanımlama</h3>



<p>Bir fonksiyon aşağıdaki gibi 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="function FonksiyonAdi(Parametre1: VeriTipi; Parametre2: VeriTipi): DonusTipi;
begin
  // Fonksiyonun gerçekleştireceği işlemler
  // DonusTipi türünde bir değer döndürmeli
  Result := DonusDegeri;
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">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">FonksiyonAdi</span><span style="color: #D4D4D4">(Parametre1: VeriTipi; Parametre2: VeriTipi): DonusTipi;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Fonksiyonun gerçekleştireceği işlemler</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// DonusTipi türünde bir değer döndürmeli</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">Result</span><span style="color: #D4D4D4"> := DonusDegeri;</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span></code></pre></div>



<p>Örneğin, iki sayıyı toplayıp sonucu döndüren bir fonksiyon şöyle olabilir:</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="function Topla(Sayi1: Integer; Sayi2: Integer): Integer;
begin
  Result := Sayi1 + Sayi2;
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">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Topla</span><span style="color: #D4D4D4">(Sayi1: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">; Sayi2: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">): </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">Result</span><span style="color: #D4D4D4"> := Sayi1 + Sayi2;</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span></code></pre></div>



<p></p>



<h3 class="wp-block-heading">Fonksiyon Çağırma</h3>



<p>Bir fonksiyonu çağırmak ve döndürdüğü değeri kullanmak için şöyle bir ifade kullanabilirsiniz:</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
  Toplam: Integer;
begin
  Toplam := Topla(5, 3);
  ShowMessage('Toplam: ' + IntToStr(Toplam)); // Ekrana &quot;Toplam: 8&quot; yazdırı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">  Toplam: </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">  Toplam := Topla(</span><span style="color: #B5CEA8">5</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">3</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(</span><span style="color: #CE9178">&#39;Toplam: &#39;</span><span style="color: #D4D4D4"> + IntToStr(Toplam)); </span><span style="color: #6A9955">// Ekrana &quot;Toplam: 8&quot; yazdırır</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span></code></pre></div>



<p></p>



<h2 class="wp-block-heading">Prosedürler ve Fonksiyonlar Arasındaki Farklar</h2>



<p>Temel fark, fonksiyonların bir değer döndürmesi, prosedürlerin ise döndürmemesidir. Fonksiyonlar genellikle bir hesaplama veya dönüşüm işleminin sonucunu elde etmek için kullanılırken, prosedürler genellikle bir eylemi gerçekleştirmek veya bir durumu değiştirmek için kullanılır.</p>



<ul class="wp-block-list">
<li><strong>Değer Döndürme:</strong> Fonksiyonlar değer döndürür, prosedürler döndürmez.</li>



<li><strong>Kullanım Amacı:</strong> Fonksiyonlar genellikle hesaplama, dönüşüm gibi işlemler için, prosedürler ise eylem veya durum değişikliği için kullanılır.</li>
</ul>



<h2 class="wp-block-heading">Metotlar (Nesne Yönelimli Programlama Bağlamında)</h2>



<p>Delphi, nesne yönelimli bir programlama dilidir. Bu bağlamda, <strong>metotlar</strong>, bir nesneye ait prosedür veya fonksiyonlardır. Metotlar, nesnenin davranışını tanımlar ve nesnenin verileri üzerinde işlem yapar.</p>



<h3 class="wp-block-heading">Metot Tanımlama</h3>



<p>Bir sınıf içinde metotlar aşağıdaki gibi 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(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="type
  TOrnekSinif = class
  private
    FVeri: Integer;
  public
    procedure Metot1;
    function Metot2: String;
  end;

implementation

procedure TOrnekSinif.Metot1;
begin
  // Metot1'in gerçekleştireceği işlemler
end;

function TOrnekSinif.Metot2: String;
begin
  Result := 'Merhaba Dünya!';
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">type</span></span>
<span class="line"><span style="color: #D4D4D4">  TOrnekSinif = </span><span style="color: #569CD6">class</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">private</span></span>
<span class="line"><span style="color: #D4D4D4">    FVeri: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">public</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">procedure</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Metot1</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Metot2</span><span style="color: #D4D4D4">: </span><span style="color: #569CD6">String</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>
<span class="line"><span style="color: #569CD6">implementation</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">procedure</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">TOrnekSinif.Metot1</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: #6A9955">// Metot1&#39;in gerçekleştireceği işlemler</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">TOrnekSinif.Metot2</span><span style="color: #D4D4D4">: </span><span style="color: #569CD6">String</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">Result</span><span style="color: #D4D4D4"> := </span><span style="color: #CE9178">&#39;Merhaba Dünya!&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span></code></pre></div>



<p></p>



<h3 class="wp-block-heading">Metot Çağırma</h3>



<p>Bir nesnenin metodunu çağırmak için nokta notasyonu 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
  OrnekNesne: TOrnekSinif;
begin
  OrnekNesne := TOrnekSinif.Create;
  OrnekNesne.Metot1; // Metot1 çağrılıyor
  ShowMessage(OrnekNesne.Metot2); // Metot2 çağrılıyor ve sonucu ekrana yazdırılıyor
  OrnekNesne.Free;
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">  OrnekNesne: TOrnekSinif;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  OrnekNesne := TOrnekSinif.Create;</span></span>
<span class="line"><span style="color: #D4D4D4">  OrnekNesne.Metot1; </span><span style="color: #6A9955">// Metot1 çağrılıyor</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(OrnekNesne.Metot2); </span><span style="color: #6A9955">// Metot2 çağrılıyor ve sonucu ekrana yazdırılıyor</span></span>
<span class="line"><span style="color: #D4D4D4">  OrnekNesne.Free;</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span></code></pre></div>



<p></p>



<h2 class="wp-block-heading">Parametre Geçirme Yöntemleri</h2>



<p>Delphi&#8217;de parametreler prosedürlere ve fonksiyonlara farklı şekillerde geçirilebilir. Bu yöntemler, parametrelerin nasıl kullanıldığı ve nasıl değiştirilebildiği üzerinde etkilidir.</p>



<ul class="wp-block-list">
<li><strong>Değer ile Geçirme (By Value):</strong> Parametrenin bir kopyası fonksiyona veya prosedüre geçirilir. Fonksiyon veya prosedür içindeki değişiklikler orijinal parametreyi etkilemez.</li>



<li><strong>Referans ile Geçirme (By Reference):</strong> Parametrenin adresi fonksiyona veya prosedüre geçirilir. Fonksiyon veya prosedür içindeki değişiklikler orijinal parametreyi etkiler. `var` anahtar kelimesi ile belirtilir.</li>



<li><strong>Sabit Referans ile Geçirme (Const):</strong> Parametre referans ile geçirilir, ancak fonksiyon veya prosedür içinde değiştirilemez. Bu, performans açısından avantajlıdır çünkü veri kopyalanmaz, ancak güvenliği de sağlar.</li>
</ul>



<h3 class="wp-block-heading">Örnek Parametre Geçirme Yöntemleri</h3>



<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 DegerIleGec(Sayi: Integer);
begin
  Sayi := Sayi + 10; // Bu değişiklik ana programdaki Sayi değişkenini etkilemez
end;

procedure ReferansIleGec(var Sayi: Integer);
begin
  Sayi := Sayi + 10; // Bu değişiklik ana programdaki Sayi değişkenini etkiler
end;

procedure SabitReferansIleGec(const Sayi: Integer);
begin
  // Sayi := Sayi + 10; // Bu satır hata verir, çünkü Sayi değiştirilemez
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">procedure</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">DegerIleGec</span><span style="color: #D4D4D4">(Sayi: </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">  Sayi := Sayi + </span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4">; </span><span style="color: #6A9955">// Bu değişiklik ana programdaki Sayi değişkenini etkilemez</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">procedure</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">ReferansIleGec</span><span style="color: #D4D4D4">(</span><span style="color: #569CD6">var</span><span style="color: #D4D4D4"> Sayi: </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">  Sayi := Sayi + </span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4">; </span><span style="color: #6A9955">// Bu değişiklik ana programdaki Sayi değişkenini etkiler</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">procedure</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">SabitReferansIleGec</span><span style="color: #D4D4D4">(</span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> Sayi: </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: #6A9955">// Sayi := Sayi + 10; // Bu satır hata verir, çünkü Sayi değiştirilemez</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span></code></pre></div>



<p></p>



<h2 class="wp-block-heading">İleri Düzey Kullanım: Fonksiyon Göstericileri (Function Pointers)</h2>



<p>Delphi, fonksiyon göstericilerini destekler. Bu, bir fonksiyonun adresini bir değişkende saklayıp, bu değişken aracılığıyla fonksiyonu çağırmanıza olanak tanır. Fonksiyon göstericileri, esnek ve dinamik programlama teknikleri için önemlidir.</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(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="type
  TToplamaFonksiyonu = function(Sayi1, Sayi2: Integer): Integer;

var
  FonksiyonGostericisi: TToplamaFonksiyonu;

function Topla(Sayi1, Sayi2: Integer): Integer;
begin
  Result := Sayi1 + Sayi2;
end;

begin
  FonksiyonGostericisi := Topla;
  ShowMessage(IntToStr(FonksiyonGostericisi(5, 3))); // Ekrana &quot;8&quot; yazdırı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">type</span></span>
<span class="line"><span style="color: #D4D4D4">  TToplamaFonksiyonu = function(Sayi1, Sayi2: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">): </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  FonksiyonGostericisi: TToplamaFonksiyonu;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Topla</span><span style="color: #D4D4D4">(Sayi1, Sayi2: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">): </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">Result</span><span style="color: #D4D4D4"> := Sayi1 + Sayi2;</span></span>
<span class="line"><span style="color: #569CD6">end</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">  FonksiyonGostericisi := Topla;</span></span>
<span class="line"><span style="color: #D4D4D4">  ShowMessage(IntToStr(FonksiyonGostericisi(</span><span style="color: #B5CEA8">5</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">3</span><span style="color: #D4D4D4">))); </span><span style="color: #6A9955">// Ekrana &quot;8&quot; yazdırır</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span></code></pre></div>



<p></p>



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



<p>Prosedürler ve fonksiyonlar, Delphi programlama dilinde kodun modülerleştirilmesi, yeniden kullanılabilirliğinin artırılması ve okunabilirliğinin iyileştirilmesi için temel araçlardır. Metotlar ise, nesne yönelimli programlamanın önemli bir parçasıdır ve nesnelerin davranışlarını tanımlar. Parametre geçirme yöntemleri ve fonksiyon göstericileri gibi ileri düzey özellikler, daha esnek ve güçlü uygulamalar geliştirmenize olanak tanır. Bu yapıları etkin bir şekilde kullanarak, daha karmaşık ve yönetilebilir Delphi uygulamaları oluşturabilirsiniz.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;Prosedürler ve fonksiyonlar, yazılım mühendisliğinin temel taşlarıdır. İyi tasarlanmış prosedürler ve fonksiyonlar, kodun anlaşılmasını kolaylaştırır ve hataları azaltır.&#8221; &#8211; Yazılım Uzmanı</p>
</blockquote>
<p><a href="https://www.kesifruhu.com/yazilim/7-prosedurler-ve-fonksiyonlar-metotlar/">7. Prosedürler ve Fonksiyonlar (Metotlar)</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/7-prosedurler-ve-fonksiyonlar-metotlar/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>6. Döngüler (for, while, repeat-until)</title>
		<link>https://www.kesifruhu.com/yazilim/6-donguler-for-while-repeat-until/</link>
					<comments>https://www.kesifruhu.com/yazilim/6-donguler-for-while-repeat-until/#respond</comments>
		
		<dc:creator><![CDATA[darklaz]]></dc:creator>
		<pubDate>Thu, 17 Apr 2025 18:42:53 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[Döngüler]]></category>
		<category><![CDATA[for döngüsü]]></category>
		<category><![CDATA[repeat-until döngüsü]]></category>
		<category><![CDATA[while döngüsü]]></category>
		<guid isPermaLink="false">https://www.kesifruhu.com/?p=518</guid>

					<description><![CDATA[<p>6. Döngüler (for, while, repeat-until) Delphi programlama dilinde döngüler, belirli bir kod bloğunu tekrar tekrar çalıştırmak için kullanılan temel kontrol yapılarıdır. Bu döngüler, bir koşul <a class="mh-excerpt-more" href="https://www.kesifruhu.com/yazilim/6-donguler-for-while-repeat-until/" title="6. Döngüler (for, while, repeat-until)">[...]</a></p>
<p><a href="https://www.kesifruhu.com/yazilim/6-donguler-for-while-repeat-until/">6. Döngüler (for, while, repeat-until)</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/10816120/pexels-photo-10816120.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">6. Döngüler (for, while, repeat-until)</h1>



<p>Delphi programlama dilinde döngüler, belirli bir kod bloğunu tekrar tekrar çalıştırmak için kullanılan temel kontrol yapılarıdır. Bu döngüler, bir koşul doğru olduğu sürece veya belirli bir sayıda tekrar gerçekleşene kadar çalışmaya devam ederler. Delphi&#8217;de yaygın olarak kullanılan üç ana döngü türü vardır: <code>for</code>, <code>while</code> ve <code>repeat-until</code>. Bu makalede, bu döngülerin her birini ayrıntılı olarak inceleyeceğiz ve nasıl kullanılacaklarına dair örnekler sunacağız.</p>



<h2 class="wp-block-heading"><code>for</code> Döngüsü</h2>



<p><code>for</code> döngüsü, belirli bir sayıda tekrar yapmak istediğimizde kullanılır. Genellikle bir sayaç değişkeni kullanılarak kontrol edilir.</p>



<h3 class="wp-block-heading"><code>for</code> Döngüsünün Sözdizimi</h3>



<p><code>for</code> döngüsünün genel sözdizimi şu şekildedir:</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="for sayaç := başlangıç değeri to bitiş değeri do
begin
  // Tekrarlanacak kod bloğu
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: #C586C0">for</span><span style="color: #D4D4D4"> sayaç := başlangıç değeri </span><span style="color: #569CD6">to</span><span style="color: #D4D4D4"> bitiş değeri </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Tekrarlanacak kod bloğu</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>Eğer sayaç değişkenini azaltarak döngü yapmak isterseniz <code>downto</code> anahtar kelimesini kullanabilirsiniz:</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="for sayaç := başlangıç değeri downto bitiş değeri do
begin
  // Tekrarlanacak kod bloğu
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: #C586C0">for</span><span style="color: #D4D4D4"> sayaç := başlangıç değeri </span><span style="color: #C586C0">downto</span><span style="color: #D4D4D4"> bitiş değeri </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Tekrarlanacak kod bloğu</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"><code>for</code> Döngüsü Örneği</h3>



<p>Aşağıdaki örnek, 1&#8217;den 10&#8217;a kadar olan sayıları ekrana yazdırmak için <code>for</code> döngüsünü kullanı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(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="program ForDongusu;

{$APPTYPE CONSOLE}

var
  i: Integer;

begin
  for i := 1 to 10 do
  begin
    Writeln('Sayı: ', i);
  end;
  Readln;
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">program</span><span style="color: #D4D4D4"> ForDongusu;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D16969">{$APPTYPE CONSOLE}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  i: </span><span style="color: #569CD6">Integer</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">  </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> i := </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">to</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">    Writeln(</span><span style="color: #CE9178">&#39;Sayı: &#39;</span><span style="color: #D4D4D4">, i);</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: #D4D4D4">  Readln;</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>Bu kod, konsolda aşağıdaki çıktıyı üretir:</p>



<pre class="wp-block-code"><code>Sayı: 1
Sayı: 2
Sayı: 3
Sayı: 4
Sayı: 5
Sayı: 6
Sayı: 7
Sayı: 8
Sayı: 9
Sayı: 10
</code></pre>



<h2 class="wp-block-heading"><code>while</code> Döngüsü</h2>



<p><code>while</code> döngüsü, belirli bir koşul doğru olduğu sürece bir kod bloğunu çalıştırmak için kullanılır. Koşul döngünün başında kontrol edilir, bu nedenle eğer koşul başlangıçta yanlışsa döngü hiç çalışmaz.</p>



<h3 class="wp-block-heading"><code>while</code> Döngüsünün Sözdizimi</h3>



<p><code>while</code> döngüsünün genel sözdizimi şu şekildedir:</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="while koşul do
begin
  // Tekrarlanacak kod bloğu
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: #C586C0">while</span><span style="color: #D4D4D4"> koşul </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Tekrarlanacak kod bloğu</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"><code>while</code> Döngüsü Örneği</h3>



<p>Aşağıdaki örnek, bir sayacın değeri 5&#8217;ten küçük olduğu sürece ekrana sayacı yazdırmak için <code>while</code> döngüsünü kullanı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(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="program WhileDongusu;

{$APPTYPE CONSOLE}

var
  sayac: Integer;

begin
  sayac := 1;
  while sayac &lt; 5 do
  begin
    Writeln('Sayaç değeri: ', sayac);
    sayac := sayac + 1;
  end;
  Readln;
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">program</span><span style="color: #D4D4D4"> WhileDongusu;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D16969">{$APPTYPE CONSOLE}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  sayac: </span><span style="color: #569CD6">Integer</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">  sayac := </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">while</span><span style="color: #D4D4D4"> sayac &lt; </span><span style="color: #B5CEA8">5</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">    Writeln(</span><span style="color: #CE9178">&#39;Sayaç değeri: &#39;</span><span style="color: #D4D4D4">, sayac);</span></span>
<span class="line"><span style="color: #D4D4D4">    sayac := sayac + </span><span style="color: #B5CEA8">1</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: #D4D4D4">  Readln;</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>Bu kod, konsolda aşağıdaki çıktıyı üretir:</p>



<pre class="wp-block-code"><code>Sayaç değeri: 1
Sayaç değeri: 2
Sayaç değeri: 3
Sayaç değeri: 4
</code></pre>



<h2 class="wp-block-heading"><code>repeat-until</code> Döngüsü</h2>



<p><code>repeat-until</code> döngüsü, bir kod bloğunu en az bir kez çalıştırmak ve ardından bir koşul yanlış olana kadar tekrar çalıştırmak için kullanılır. Koşul döngünün sonunda kontrol edilir, bu nedenle döngü içindeki kod bloğu en az bir kez çalışır.</p>



<h3 class="wp-block-heading"><code>repeat-until</code> Döngüsünün Sözdizimi</h3>



<p><code>repeat-until</code> döngüsünün genel sözdizimi şu şekildedir:</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="repeat
  // Tekrarlanacak kod bloğu
until koşul;
" 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: #C586C0">repeat</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// Tekrarlanacak kod bloğu</span></span>
<span class="line"><span style="color: #C586C0">until</span><span style="color: #D4D4D4"> koşul;</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<h3 class="wp-block-heading"><code>repeat-until</code> Döngüsü Örneği</h3>



<p>Aşağıdaki örnek, bir sayacın değeri 5&#8217;ten büyük veya eşit olana kadar ekrana sayacı yazdırmak için <code>repeat-until</code> döngüsünü kullanı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(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="program RepeatUntilDongusu;

{$APPTYPE CONSOLE}

var
  sayac: Integer;

begin
  sayac := 1;
  repeat
    Writeln('Sayaç değeri: ', sayac);
    sayac := sayac + 1;
  until sayac &gt;= 5;
  Readln;
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">program</span><span style="color: #D4D4D4"> RepeatUntilDongusu;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D16969">{$APPTYPE CONSOLE}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  sayac: </span><span style="color: #569CD6">Integer</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">  sayac := </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">repeat</span></span>
<span class="line"><span style="color: #D4D4D4">    Writeln(</span><span style="color: #CE9178">&#39;Sayaç değeri: &#39;</span><span style="color: #D4D4D4">, sayac);</span></span>
<span class="line"><span style="color: #D4D4D4">    sayac := sayac + </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">until</span><span style="color: #D4D4D4"> sayac &gt;= </span><span style="color: #B5CEA8">5</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  Readln;</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>Bu kod, konsolda aşağıdaki çıktıyı üretir:</p>



<pre class="wp-block-code"><code>Sayaç değeri: 1
Sayaç değeri: 2
Sayaç değeri: 3
Sayaç değeri: 4
Sayaç değeri: 5
</code></pre>



<h2 class="wp-block-heading">Döngü Kontrol İfadeleri: <code>break</code> ve <code>continue</code></h2>



<p>Delphi, döngülerin akışını kontrol etmek için iki önemli ifade sunar: <code>break</code> ve <code>continue</code>.</p>



<h3 class="wp-block-heading"><code>break</code> İfadesi</h3>



<p><code>break</code> ifadesi, döngüyü anında sonlandırır ve döngüden sonraki ilk ifadeye geçilir. Bu, belirli bir koşul karşılandığında döngüyü erken sonlandırmak için kullanışlıdı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(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="program BreakOrnegi;
{$APPTYPE CONSOLE}
var
  i: Integer;
begin
  for i := 1 to 10 do
  begin
    if i = 5 then
      break; // Döngüyü sonlandır
    Writeln('Sayı: ', i);
  end;
  Writeln('Döngü tamamlandı.');
  Readln;
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">program</span><span style="color: #D4D4D4"> BreakOrnegi;</span></span>
<span class="line"><span style="color: #D16969">{$APPTYPE CONSOLE}</span></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  i: </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: #C586C0">for</span><span style="color: #D4D4D4"> i := </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">to</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">if</span><span style="color: #D4D4D4"> i = </span><span style="color: #B5CEA8">5</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">then</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #C586C0">break</span><span style="color: #D4D4D4">; </span><span style="color: #6A9955">// Döngüyü sonlandır</span></span>
<span class="line"><span style="color: #D4D4D4">    Writeln(</span><span style="color: #CE9178">&#39;Sayı: &#39;</span><span style="color: #D4D4D4">, i);</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: #D4D4D4">  Writeln(</span><span style="color: #CE9178">&#39;Döngü tamamlandı.&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  Readln;</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>Bu örnekte, <code>i</code> değeri 5 olduğunda <code>break</code> ifadesi çalışır ve döngü sonlanır. Çıktı aşağıdaki gibi olacaktır:</p>



<pre class="wp-block-code"><code>Sayı: 1
Sayı: 2
Sayı: 3
Sayı: 4
Döngü tamamlandı.
</code></pre>



<h3 class="wp-block-heading"><code>continue</code> İfadesi</h3>



<p><code>continue</code> ifadesi, döngünün mevcut iterasyonunu atlar ve bir sonraki iterasyona geçer. Bu, belirli bir koşul karşılandığında döngü içindeki belirli bir kod bloğunu atlamak için kullanışlıdı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(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="program ContinueOrnegi;
{$APPTYPE CONSOLE}
var
  i: Integer;
begin
  for i := 1 to 10 do
  begin
    if i mod 2 = 0 then
      continue; // Mevcut iterasyonu atla (çift sayıları atla)
    Writeln('Sayı: ', i);
  end;
  Writeln('Döngü tamamlandı.');
  Readln;
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">program</span><span style="color: #D4D4D4"> ContinueOrnegi;</span></span>
<span class="line"><span style="color: #D16969">{$APPTYPE CONSOLE}</span></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  i: </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: #C586C0">for</span><span style="color: #D4D4D4"> i := </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">to</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">if</span><span style="color: #D4D4D4"> i </span><span style="color: #569CD6">mod</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">2</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">then</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #C586C0">continue</span><span style="color: #D4D4D4">; </span><span style="color: #6A9955">// Mevcut iterasyonu atla (çift sayıları atla)</span></span>
<span class="line"><span style="color: #D4D4D4">    Writeln(</span><span style="color: #CE9178">&#39;Sayı: &#39;</span><span style="color: #D4D4D4">, i);</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: #D4D4D4">  Writeln(</span><span style="color: #CE9178">&#39;Döngü tamamlandı.&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  Readln;</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>Bu örnekte, <code>i</code> değeri çift sayı olduğunda <code>continue</code> ifadesi çalışır ve o iterasyon atlanır. Çıktı aşağıdaki gibi olacaktır:</p>



<pre class="wp-block-code"><code>Sayı: 1
Sayı: 3
Sayı: 5
Sayı: 7
Sayı: 9
Döngü tamamlandı.
</code></pre>



<h2 class="wp-block-heading">İç İçe Döngüler</h2>



<p>Delphi&#8217;de, döngülerin içine başka döngüler yerleştirmek mümkündür. Bu tür yapılara iç içe döngüler denir. İç içe döngüler, iki veya daha fazla boyutlu veri yapılarını işlemek veya karmaşık algoritmaları uygulamak için kullanışlıdı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(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="program IcIceDonguler;
{$APPTYPE CONSOLE}
var
  i, j: Integer;
begin
  for i := 1 to 3 do
  begin
    for j := 1 to 3 do
    begin
      Writeln('i = ', i, ', j = ', j);
    end;
  end;
  Readln;
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">program</span><span style="color: #D4D4D4"> IcIceDonguler;</span></span>
<span class="line"><span style="color: #D16969">{$APPTYPE CONSOLE}</span></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  i, j: </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: #C586C0">for</span><span style="color: #D4D4D4"> i := </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">to</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">3</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> j := </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">to</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">3</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">      Writeln(</span><span style="color: #CE9178">&#39;i = &#39;</span><span style="color: #D4D4D4">, i, </span><span style="color: #CE9178">&#39;, j = &#39;</span><span style="color: #D4D4D4">, j);</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: #D4D4D4">  </span><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  Readln;</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>Bu örnek, 1&#8217;den 3&#8217;e kadar olan <code>i</code> ve <code>j</code> değerlerini kullanarak iç içe <code>for</code> döngülerini gösterir. Çıktı aşağıdaki gibi olacaktır:</p>



<pre class="wp-block-code"><code>i = 1, j = 1
i = 1, j = 2
i = 1, j = 3
i = 2, j = 1
i = 2, j = 2
i = 2, j = 3
i = 3, j = 1
i = 3, j = 2
i = 3, j = 3
</code></pre>



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



<p>Delphi&#8217;de döngüler, programlamanın temel bir parçasıdır ve kodunuzun verimli ve etkili bir şekilde çalışmasını sağlamak için önemlidir. <code>for</code>, <code>while</code> ve <code>repeat-until</code> döngüleri, farklı senaryolarda kullanılabilecek güçlü araçlardır. Ayrıca, <code>break</code> ve <code>continue</code> ifadeleri ile döngülerin akışını daha da kontrol edebilirsiniz. Bu döngüleri ve kontrol ifadelerini iyi anlamak, daha karmaşık ve güçlü Delphi uygulamaları geliştirmenize yardımcı olacaktır.</p>



<p>Bu makalede, Delphi&#8217;deki döngülerin temel kavramlarını ve kullanımlarını ele aldık. Umarım bu bilgiler, Delphi programlama becerilerinizi geliştirmenize yardımcı olur.</p>
<p><a href="https://www.kesifruhu.com/yazilim/6-donguler-for-while-repeat-until/">6. Döngüler (for, while, repeat-until)</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/6-donguler-for-while-repeat-until/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
