<?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>Prosedür arşivleri - Keşif Ruhu</title>
	<atom:link href="https://www.kesifruhu.com/tag/prosedur/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kesifruhu.com/tag/prosedur/</link>
	<description>Keşfet, Deneyimle, Paylaş</description>
	<lastBuildDate>Sat, 19 Apr 2025 09:52:38 +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>Prosedür arşivleri - Keşif Ruhu</title>
	<link>https://www.kesifruhu.com/tag/prosedur/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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>
	</channel>
</rss>
