<?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 Dersleri arşivleri - Keşif Ruhu</title>
	<atom:link href="https://www.kesifruhu.com/tag/delphi-dersleri/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kesifruhu.com/tag/delphi-dersleri/</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 Dersleri arşivleri - Keşif Ruhu</title>
	<link>https://www.kesifruhu.com/tag/delphi-dersleri/</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>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>
	</channel>
</rss>
