<?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>Shenturk.com &#187; euro</title>
	<atom:link href="http://www.shenturk.com/tag/euro/feed" rel="self" type="application/rss+xml" />
	<link>http://www.shenturk.com</link>
	<description>Hava Durumu, Hava Cıva!, ADSL Kota, Ey DSL!, Döviz, Mini Döviz, Radyo, RDK, Haber...</description>
	<lastBuildDate>Fri, 10 Feb 2012 07:30:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Mini Döviz 4.5 Çıktı!</title>
		<link>http://www.shenturk.com/delphi/mini-doviz-4-5-cikti</link>
		<comments>http://www.shenturk.com/delphi/mini-doviz-4-5-cikti#comments</comments>
		<pubDate>Tue, 31 Jan 2012 21:40:29 +0000</pubDate>
		<dc:creator>freedelphi</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Mini Döviz]]></category>
		<category><![CDATA[akbank]]></category>
		<category><![CDATA[altın]]></category>
		<category><![CDATA[avro]]></category>
		<category><![CDATA[banka]]></category>
		<category><![CDATA[çevrimiçi]]></category>
		<category><![CDATA[çeyrek]]></category>
		<category><![CDATA[cumhuriyet]]></category>
		<category><![CDATA[dolar]]></category>
		<category><![CDATA[döviz]]></category>
		<category><![CDATA[efektif]]></category>
		<category><![CDATA[euro]]></category>
		<category><![CDATA[garanti]]></category>
		<category><![CDATA[gram]]></category>
		<category><![CDATA[hamit]]></category>
		<category><![CDATA[has]]></category>
		<category><![CDATA[kur]]></category>
		<category><![CDATA[kurlar]]></category>
		<category><![CDATA[merkez]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[piyasa]]></category>
		<category><![CDATA[reşat]]></category>
		<category><![CDATA[riyal]]></category>
		<category><![CDATA[serbest]]></category>
		<category><![CDATA[sterlin]]></category>
		<category><![CDATA[tcmb]]></category>
		<category><![CDATA[ziraat]]></category>

		<guid isPermaLink="false">http://www.shenturk.com/?p=1536</guid>
		<description><![CDATA[Mini Döviz 4.0 yeniden hata veriyor maalesef. Aslında daha önceden aynı hata ile karşılaşmıştık. Döviz ekranında durum sembolü devamlı olarak "Değişiklik Yok" olarak gösterilmekte. Hatanın kaynağını buldum. Verileri aldığım sayfayı ayrıştırırken sembolü aldığım bölüm değiştirilmiş. Malum döviz bilgilerini HTML parsing (ayrıştırma) metodu ile aldığımdan sayfada yapılan değişiklikler programın çalışmasını etkiliyor. Sorunu giderdim ve yeni sürümü [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption aligncenter" style="width: 495px"><img title="Mini Döviz 4.0 Hatalı Ekran Görüntüsü" src="http://www.shenturk.com/images/img0171.png" alt="Mini Döviz 4.0 Hatalı Ekran Görüntüsü" /><p class="wp-caption-text">Mini Döviz 4.0 Hatalı Ekran Görüntüsü</p></div>
<p>Mini Döviz 4.0 yeniden hata veriyor maalesef. Aslında daha önceden aynı hata ile karşılaşmıştık. Döviz ekranında durum sembolü devamlı olarak "Değişiklik Yok" olarak gösterilmekte. Hatanın kaynağını buldum. Verileri aldığım sayfayı ayrıştırırken sembolü aldığım bölüm değiştirilmiş. Malum döviz bilgilerini HTML parsing (ayrıştırma) metodu ile aldığımdan sayfada yapılan değişiklikler programın çalışmasını etkiliyor. Sorunu giderdim ve yeni sürümü çıkardım. Aşağıdaki linkten indirebilirsiniz. </p>
<table>
<tbody>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;<strong>Mini Döviz 4.5 İNDİR:</strong></td>
<td><a href="http://www.shenturk.com/downloads/minidoviz-4.5-setup.rar"><img src="http://www.shenturk.com/images/img0156.png" alt="İndir" /></a></td>
<td><a href="http://www.shenturk.com/downloads/minidoviz-4.5-setup.rar">minidoviz-4.5-setup.rar [547 KB]</a></td>
</tr>
</tbody>
</table>
<p><strong>NOT:</strong><br />
Eğer bilgisayarınızda Mini Döviz' in eski sürümleri yüklü ise kaldırmanıza gerek yoktur. Mini Döviz 4.5 kurulum programı, eski sürümü kaldırıp yerine 4.5 sürümünü kurar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shenturk.com/delphi/mini-doviz-4-5-cikti/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Döviz.NET: C# ile Online Döviz Programı</title>
		<link>http://www.shenturk.com/genel/doviz-net-c-ile-online-doviz-programi</link>
		<comments>http://www.shenturk.com/genel/doviz-net-c-ile-online-doviz-programi#comments</comments>
		<pubDate>Thu, 22 Dec 2011 15:46:32 +0000</pubDate>
		<dc:creator>freedelphi</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Döviz.NET]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[dolar]]></category>
		<category><![CDATA[döviz]]></category>
		<category><![CDATA[euro]]></category>
		<category><![CDATA[gdi+]]></category>
		<category><![CDATA[örnek]]></category>
		<category><![CDATA[programlama]]></category>
		<category><![CDATA[sample]]></category>

		<guid isPermaLink="false">http://www.shenturk.com/?p=1409</guid>
		<description><![CDATA[Uzun zamandır öğretici bir makale yazamadım. Özellikle C# ile Widget yada Gadget tarzı program geliştirme konusunda oldukça fazla mail aldım. Aslında önceki yazılarımda bu konuya açıklık getirmeye çalışmıştım ama sanırsam bazı sıkıntılar olmuş. Elimden geldiğince bu sorunları gidermeye çalışacağım. Projenin adını Döviz.NET olarak seçtim. Adından anlaşılacağı üzere masaüstü için online döviz takip programı. Tabiki şimdilik [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption aligncenter" style="width: 470px"><img title="Döviz.NET: C# ile Online Döviz Programı" src="http://www.shenturk.com/images/img0178.png" alt="Döviz.NET: C# ile Online Döviz Programı" width="363" height="248" /><p class="wp-caption-text">Döviz.NET: C# ile Online Döviz Programı</p></div>
<p>Uzun zamandır öğretici bir makale yazamadım. Özellikle C# ile Widget yada Gadget tarzı program geliştirme konusunda oldukça fazla mail aldım. Aslında önceki yazılarımda bu konuya açıklık getirmeye çalışmıştım ama sanırsam bazı sıkıntılar olmuş. Elimden geldiğince bu sorunları gidermeye çalışacağım. Projenin adını <strong>Döviz.NET</strong> olarak seçtim. Adından anlaşılacağı üzere masaüstü için online döviz takip programı. Tabiki şimdilik sadece Dolar ve Euro bilgisini ekrana getirebiliyor. Projenin öğretici olması amacıyla karmaşadan uzak kalmaya çalıştım. Zaten amacım tam teşekküllü program yazmak değil, temel bazı ipuçları vermek. Başlayalım...</p>
<p><strong>1. TASARIM</strong></p>
<p>Döviz.NET projesini <strong>Microsoft Visual Studio 2008</strong> ile <strong>.NET FrameWork 3.5</strong> temel alarak geliştireceğiz. Tasarım aşaması oldukça basit. Normal bir Windows Form tasarımı ile aynı. Buradaki amacım daha az kod yazarak işimizi kolaylaştırmak. Malum <a href="http://www.shenturk.com/genel/c-sharp-gdi-ve-updatelayeredwindow" title="C#, GDI+ ve UpdateLayeredWindow" target="_blank">C#, GDI+ ve UpdateLayeredWindow</a> başlıklı yazımda tasarım kısmına pek değinememiştim. Kod kısmı fazla olduğu için anlaşılmasında sıkıntı yaşanmış. Zaten bu yazının amacıda bu karmaşayı gidermek. Aşağıda resimde tasarım aşamasından bir ekran görüntüsü mevcut. Bu formu normal bir form tasarımı yapar gibi yapabilirsiniz. Form üzerindeki resimler için <strong>PictureBox</strong> bileşenini, yazılar için ise <strong>Label</strong> bileşenini kullandım. Burada en önemli kısım formun başlık kısmının kaldırılması. Bu işlem için formun <strong>FormBorderStyle</strong> özelliğini <strong>None</strong> olarak ayarlamalıyız. Widget tarzı programlarda pencere başlığı bizim için zorluk çıkartır. Çalışma alanımızda ekstra bir çizim istemiyoruz. Gereken tüm çizimleri kendimiz halledeceğiz. Dikkat edilmesi gereken bir konuda şu: Form tasarımında resimlerin ve etiketlerin görüntüsü çalışma zamanındaki ile farklı. Özellikle bileşenlerin zemin kısımlarına dikkate edin. Hiçbiri saydam (<strong>transparent</strong>) değil. Tüm bileşenlerin zeminleri kendi <strong>backColor</strong> rengi ile doldurulmuş. Tabiki bu istemediğimiz bir durum. Bu sorunun sonraki aşamada nasıl giderileceğinden bahsedeceğim. Tabiki kod yazarak...</p>
<div class="wp-caption aligncenter" style="width: 470px"><img title="Döviz.NET Tasarım Aşaması" src="http://www.shenturk.com/images/img0177.png" alt="Döviz.NET Tasarım Aşaması" width="416" height="334" /><p class="wp-caption-text">Döviz.NET Tasarım Aşaması</p></div>
<p><strong>2. KOD</strong></p>
<p>Asıl zevkli kısma geldik... Önceki yazılarımda bahsettiğim gibi ilk önce temel felsefeyi anlamamız gerekiyor: Normalde tasarım yaptığımız bir Windows formunu Run ettiğimizde ekstra bir çizim yapmadan görüntüyü elde ederiz. Çünkü işletim sistemi gereken tüm çizimleri bizim için yapar. Örneğin formumuzun zemini o anki sistem renklerine bağlı olarak dikdörtgen şeklinde çizilir. Oysa biz daha yumuşak ve kıvrımlı bir görüntü elde etmek isteyebiliriz. Mesela PhotoShop' ta tasarlanmış parıldayan top şekli yada kenarları yuvarlatılmış gölgeli (drop shadow) bir çerçeve. Ekranda oldukça şık dururdu değil mi? Şunu unutmayın ki Widget tarzı programlarda pencere yapısı klasik pencerelerden farklıdır. Bu tip pencerelere <strong>Layered Windows</strong> denir. <strong>Katmanlı Pencere</strong> olarak çevirebiliriz dilimize. Windows 2000 ile birlikte kullanılmaya başlanan bir özellik bu. Normal bir pencerenin ExStyle özelliğine WS_EX_LAYERED değerini ekleyerek elde edilir. Böylece sisteme oluşturduğumuz pencerenin katmanlı olduğunu bildiriyoruz. Kod kısmı en basit olarak şöyle yazılabilir:<br />
<code>long style = CreateParams.ExStyle;<br />
style |= Win32.WS_EX_LAYERED;<br />
Win32.SetWindowLong(this.Handle, Win32.GWL_EXSTYLE, (IntPtr)style);<br />
</code><br />
Yukarıdaki kod parçasını formunuzun OnLoad olayına yerleştirirseniz pencereniz katmanlı duruma geçer. Ama iş bu kadarla da bitmiyor tabiki. Bir de formun çizim alanının güncellenmesi gerekiyor. Yani katmanlı pencerenin yeniden çizilmesi gerekiyor. Bu işlem için yine Windows API fonksiyonlarından olan UpdateLayeredWindow' dan faydalanacağız. Güncelleme işlemi için elimizde formumuzun o anki görüntüsü olmalı. <a href="http://msdn.microsoft.com/en-us/library/ms633556(VS.85).aspx" title="UpdateLayeredWindow" target="_blank">UpdateLayeredWindow</a> fonksiyonu DC (Device Context) ile parametrik çalışır. Bu yüzden elimizde bir bitmap olsa çok iyi olurdu diyoruz. GDI+ ile çizim yapmanın en pratik yollarından biri de Bitmap sınıfından bir nesne ile ilişkilendirilmiş bir Graphics nesnesi. Graphics sınıfının GetHdc fonksiyonu ile aranan DC' yi çok kolay bir biçimde elde edebiliriz. Aşağıdaki kod parçasında Bitmap ile Graphics nesnelerinin nasıl kullanıldığını görebilirsiniz.<br />
<code>/* Form boyutlarinda bir Bitmap olustur */<br />
bitmap = new Bitmap(this.Width, this.Height, PixelFormat.Format32bppArgb);<br />
/* Bitmap ile baglantili ana Graphics nesnesi */<br />
graphics = Graphics.FromImage(bitmap);<br />
</code><br />
UpdateLayeredWindow için gereken DC' yi Graphics nesnesinin alabiliriz ama bu fonksiyonun bi' dünya parametresi var değil mi? Kaynak kod içinde UpdateLayeredForm() prosedürü UpdateLayeredWindow fonksiyonunun nasıl kullanıcağını gösteriyor. Alternatif kullanım şekilleri de mevcut ama ben klasik kullanımdan yana olduğum için bu kodu tercih ediyorum. Size de tavsiye ederim ve mutlaka inceleyin derim.<br />
Geldik biraz karışık işlemlere... Aslında bu yazının temel öğretici amacını oluşturan kısım burası. Tasarım kısmında görünen kontrollerin tamamını bizim yeniden çizmemiz gerekiyor. Üstelik normalden farklı olarak. Dikkat ettiyseniz tasarım aşamasında resimlerin ve etiketlerin bir background' u var. Oysa programın çalışması sırasında bu background çizimleri görünmüyor. Transparent Label ve PictureBox oluşturmak C# ile oldukça kolay. Bu işlem için biraz kod yazmak gerek. Bende üşenmedim ve RepaintLayeredForm() adında bir prosedür yazdım. Bu prosedür form ekranındaki kontrolleri tekrardan transparent olarak çiziyor. Çizim esnasında biraz farklılık oluşuyor ama göze pek çarpmıyor. Aslında daha detaylı uğraşmak gerekiyordu fakat kaynak kod içinde karmaşıklığa yol açacağından gerek görmedim.<br />
<code>private void RepaintLayeredForm()<br />
{<br />
/* Herseyi sil */<br />
graphics.Clear(Color.FromArgb(0));<br />
/* Dikkat form uzerindeki bilesenler tersten siralanir */<br />
for (int index = this.Controls.Count - 1; index >= 0; index--)<br />
{<br />
Control control = this.Controls[index];<br />
/* Bilesen gorunmezse cizim yapma */<br />
if (!control.Visible) continue;<br />
if (control is PictureBox)<br />
{<br />
/* Bilesen PictureBox turundense Image ozelligini ciz  */<br />
PictureBox picture = control as PictureBox;<br />
graphics.DrawImage(picture.Image, picture.Bounds);<br />
}<br />
else if (control is Label)<br />
{<br />
/* Bilesen Label turundense durum biraz karisik. Normalde DrawToBitmap fonksiyonu<br />
 * transparent cizim yapmaz. Biz zeminin cizilmesini istemiyoruz. Orjinalden biraz<br />
 * farkli bir cizim yapiyoruz.<br />
 */<br />
Label label = control as Label;<br />
this.DrawTransparentLabel(label);<br />
}<br />
else<br />
{<br />
/* Diger turdense varsayilan cizim */<br />
control.DrawToBitmap(bitmap, control.Bounds);<br />
}<br />
}<br />
}</code><br />
Evet. Bu kadar yazıdan fazlası okunmaz herhalde... C# ve GDI+ ilgilenen arkadaşlara bir yol gösterme amacıyla yazdığım bu makalenin sonuna geldik. Döviz.NET projesinin içinde burada bahsetmediğim bazı kodlar  da var elbet. Özellikle internet bağlantısı yapılan kısımlar maalesef <strong>Thread kullanılmadan</strong> yazılmıştır. Ben kaynak kodu elimden geldiği kadar sade tutmaya çalıştığım için bu proje gerçek zamanlı ve son kullanıcıya hitap eden bir proje değildir. Hali hazırda eksiklikleri çoktur. Projenin kaynak kodunu aşağıdaki linkten indirebilirsiniz.</p>
<table>
<tbody>
<tr>
<td><a href="http://www.shenturk.com/downloads/doviz.net-source.rar"><img src="http://www.shenturk.com/images/img0166.png" alt="" /></a></td>
<td><a href="http://www.shenturk.com/downloads/doviz.net-source.rar">doviz.net-source.rar [277 KB]</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.shenturk.com/genel/doviz-net-c-ile-online-doviz-programi/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mini Döviz 4.0 Hazır</title>
		<link>http://www.shenturk.com/delphi/mini-doviz-4-0-hazir</link>
		<comments>http://www.shenturk.com/delphi/mini-doviz-4-0-hazir#comments</comments>
		<pubDate>Thu, 06 Oct 2011 07:53:47 +0000</pubDate>
		<dc:creator>freedelphi</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Mini Döviz]]></category>
		<category><![CDATA[akbank]]></category>
		<category><![CDATA[altın]]></category>
		<category><![CDATA[avro]]></category>
		<category><![CDATA[banka]]></category>
		<category><![CDATA[çevrimiçi]]></category>
		<category><![CDATA[çeyrek]]></category>
		<category><![CDATA[cumhuriyet]]></category>
		<category><![CDATA[dolar]]></category>
		<category><![CDATA[döviz]]></category>
		<category><![CDATA[efektif]]></category>
		<category><![CDATA[euro]]></category>
		<category><![CDATA[garanti]]></category>
		<category><![CDATA[gram]]></category>
		<category><![CDATA[hamit]]></category>
		<category><![CDATA[has]]></category>
		<category><![CDATA[kur]]></category>
		<category><![CDATA[kurlar]]></category>
		<category><![CDATA[merkez]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[piyasa]]></category>
		<category><![CDATA[reşat]]></category>
		<category><![CDATA[riyal]]></category>
		<category><![CDATA[serbest]]></category>
		<category><![CDATA[sterlin]]></category>
		<category><![CDATA[tcmb]]></category>
		<category><![CDATA[ziraat]]></category>

		<guid isPermaLink="false">http://www.shenturk.com/?p=1303</guid>
		<description><![CDATA[Mini Döviz' in 4.0 sürümünü yoğun istek üzerine hazırlamak zorunda kaldım. Malum projenin eski sürümlerinde ONS bilgisi yoktu. Bu sürümde artık ONS verilerine de erişebileceğiz. Bunun için Seçenekler->Döviz ve Altın Türü açılır kutusundan ONS'u seçmeniz yeterli (En alt satırda görünüyor). Kolay gelsin... &#160;&#160;&#160;&#160;Mini Döviz 4.0 İNDİR: minidoviz-4.0-setup.rar [547 KB] NOT: Eğer bilgisayarınızda Mini Döviz' in [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" src="/images/img0174.jpg" alt="Mini Döviz 4.0 Hatalı Ekran Görüntüsü" /></p>
<p>Mini Döviz' in 4.0 sürümünü yoğun istek üzerine hazırlamak zorunda kaldım. Malum projenin eski sürümlerinde <strong>ONS</strong> bilgisi yoktu. Bu sürümde artık ONS verilerine de erişebileceğiz. Bunun için <strong>Seçenekler->Döviz ve Altın Türü</strong> açılır kutusundan <strong>ONS</strong>'u seçmeniz yeterli (En alt satırda görünüyor). Kolay gelsin...</p>
<table>
<tbody>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;<strong>Mini Döviz 4.0 İNDİR:</strong></td>
<td><a href="http://www.shenturk.com/downloads/minidoviz-4.0-setup.rar"><img src="http://www.shenturk.com/images/img0156.png" alt="İndir" /></a></td>
<td><a href="http://www.shenturk.com/downloads/minidoviz-4.0-setup.rar">minidoviz-4.0-setup.rar [547 KB]</a></td>
</tr>
</tbody>
</table>
<p><strong>NOT:</strong><br />
Eğer bilgisayarınızda Mini Döviz' in eski sürümleri yüklü ise kaldırmanıza gerek yoktur. Mini Döviz 4.0 kurulum programı, eski sürümü kaldırıp yerine 4.0 sürümünü kurar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shenturk.com/delphi/mini-doviz-4-0-hazir/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
	</channel>
</rss>

