{"id":510,"date":"2022-03-09T20:18:08","date_gmt":"2022-03-09T20:18:08","guid":{"rendered":"https:\/\/fersahotomasyon.com\/?page_id=510"},"modified":"2025-05-14T13:04:47","modified_gmt":"2025-05-14T13:04:47","slug":"delphi-scada-3","status":"publish","type":"page","link":"https:\/\/fersahotomasyon.com.tr\/?page_id=510","title":{"rendered":"DELPHI SCADA"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"510\" class=\"elementor elementor-510\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe23b5 e-flex e-con-boxed e-con e-parent\" data-id=\"4fe23b5\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-64a7c57 elementor-widget elementor-widget-image\" data-id=\"64a7c57\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"640\" height=\"351\" src=\"https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/otomasyon_sistemleri_otomasyon_sistemi_fiyatlari_otomasyon_sistemi_yapan_firmalar_otomasyon-1-1024x561.jpg\" class=\"attachment-large size-large wp-image-594\" alt=\"\" srcset=\"https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/otomasyon_sistemleri_otomasyon_sistemi_fiyatlari_otomasyon_sistemi_yapan_firmalar_otomasyon-1-1024x561.jpg 1024w, https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/otomasyon_sistemleri_otomasyon_sistemi_fiyatlari_otomasyon_sistemi_yapan_firmalar_otomasyon-1-300x164.jpg 300w, https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/otomasyon_sistemleri_otomasyon_sistemi_fiyatlari_otomasyon_sistemi_yapan_firmalar_otomasyon-1-768x421.jpg 768w, https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/otomasyon_sistemleri_otomasyon_sistemi_fiyatlari_otomasyon_sistemi_yapan_firmalar_otomasyon-1-1536x841.jpg 1536w, https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/otomasyon_sistemleri_otomasyon_sistemi_fiyatlari_otomasyon_sistemi_yapan_firmalar_otomasyon-1-2048x1122.jpg 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-df70a42 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"df70a42\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-aa92175\" data-id=\"aa92175\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a730c9c elementor-widget elementor-widget-video\" data-id=\"a730c9c\" data-element_type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?v=2_AzQGli-FY&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-b602f3a e-flex e-con-boxed e-con e-parent\" data-id=\"b602f3a\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9e33a57 elementor-widget elementor-widget-video\" data-id=\"9e33a57\" data-element_type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?v=qY3YIRBOZj8&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2741ec6 e-flex e-con-boxed e-con e-parent\" data-id=\"2741ec6\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d49738a elementor-widget elementor-widget-video\" data-id=\"d49738a\" data-element_type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?v=XggwGh-JiJg&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6809333 e-flex e-con-boxed e-con e-parent\" data-id=\"6809333\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-83b3ac7 elementor-widget elementor-widget-video\" data-id=\"83b3ac7\" data-element_type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?v=7PHqzsN5pjY&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f9c805 e-flex e-con-boxed e-con e-parent\" data-id=\"1f9c805\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fbb83d7 elementor-widget elementor-widget-video\" data-id=\"fbb83d7\" data-element_type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?v=k2CwrELlBOI&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-15a8d64 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"15a8d64\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f0b1796\" data-id=\"f0b1796\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-daf2708 elementor-widget elementor-widget-text-editor\" data-id=\"daf2708\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><b>Delphi Nesneleri&nbsp;<\/b><\/p>\n<p>&nbsp;Nesne y\u00f6nelimli programlama nesnelerle \u00e7al\u0131\u015fmak demektir. Bir windows program\u0131nda kar\u015f\u0131m\u0131zdaki her g\u00f6rsel eleman bir nesnedir. En ba\u015fta windows pencereleri (delphideki formlar) birer nesnedir. Formlar i\u00e7lerinde di\u011fer windows nesnelerini bar\u0131nd\u0131r\u0131rlar.<\/p>\n<p>&nbsp;Delphi\u2019nin \u00e7ok geni\u015f bir kontrol k\u00fct\u00fcphanesi vard\u0131r. Bu k\u00fct\u00fcphanenin elemanlar\u0131 nesne repertuar\u0131nda (component palette) grupland\u0131r\u0131lm\u0131\u015f olarak yer al\u0131r. Bu gruplar: Standart, Additional, Win32 \u2026 \u015feklinde delphi ekran\u0131n\u0131n sa\u011f \u00fcst k\u00f6\u015fesinde yer al\u0131r.&nbsp;<\/p>\n<p><b>&nbsp;TEdit<\/b> Nesnesi Bilgi giri\u015fi yap\u0131labilen nesnelerdir.<\/p>\n<p>&nbsp;AutoSelect TRUE ise tab tu\u015fu ile focus yap\u0131ld\u0131\u011f\u0131nda edit i\u00e7indeki bilgiyi se\u00e7ili hale getirir.<\/p>\n<p>&nbsp;AutoSize TRUE ise edit i\u00e7indeki yaz\u0131n\u0131n fontu de\u011fi\u015fti\u011finde editin b\u00fcy\u00fckl\u00fc\u011f\u00fcde de\u011fi\u015fir.<\/p>\n<p>&nbsp;CanUndo TRUE ise \u00f6nceki yaz\u0131 geri al\u0131nabilir.<\/p>\n<p>&nbsp;CharCase Edit i\u00e7indeki yaz\u0131lar\u0131 b\u00fcy\u00fck, k\u00fc\u00e7\u00fck harfli olmas\u0131 sa\u011flanabilir.<\/p>\n<p>&nbsp;HideSelection TRUE ise edit aktifli\u011fini kaybederken se\u00e7ilmi\u015f yaz\u0131lar varsa se\u00e7ilmi\u015flik kaybolur.<\/p>\n<p>&nbsp;SelStart \u015ee\u00e7me i\u015fleminin ka\u00e7\u0131nc\u0131 karekterden ba\u015flad\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<p>&nbsp;SelLength Ka\u00e7 karekter se\u00e7ildi\u011fini g\u00f6sterir.<\/p>\n<p>&nbsp;SelText Se\u00e7ilen karekterleri g\u00f6sterir.<\/p>\n<p>&nbsp;SelectAll Edit i\u00e7indeki t\u00fcm yaz\u0131y\u0131 se\u00e7ili hale getirir.<\/p>\n<p>&nbsp;Clear Edit i\u00e7indeki yaz\u0131y\u0131 temizler.<\/p>\n<p>&nbsp;ClearSelection Se\u00e7ili k\u0131sm\u0131 siler.<\/p>\n<p>&nbsp;MaxLength Edite en fazla ka\u00e7 karekter girilebilece\u011fini g\u00f6sterir.<\/p>\n<p>&nbsp;Modified Edit i\u00e7indeki yaz\u0131larda de\u011fi\u015fme meydana geldi\u011finde TRUE de\u011ferini al\u0131r<\/p>\n<p>&nbsp;RaadOnly TRUE ise edit i\u00e7indeki karekterler de\u011fi\u015ftirilemez Text Edit i\u00e7indeki yaz\u0131y\u0131 g\u00f6sterir.<\/p>\n<p>&nbsp;GetLenText Edit i\u00e7indeki karekter say\u0131s\u0131n\u0131 verir.<\/p>\n<p>&nbsp;CopyToClipboard Edit i\u00e7indeki yaz\u0131y\u0131 clipboarda kopyalar.<\/p>\n<p>&nbsp;CutToClipboard Edit i\u00e7indeki yaz\u0131lar\u0131 clipboarda kopyalar ve editi temizler.<\/p>\n<p>&nbsp;PasteFromClipboard Clipboarddaki yaz\u0131y\u0131 edite kopyalar<\/p>\n<p>&nbsp;<b>TLabel<\/b> Nesnesi TLabel nesnesi etiket yaz\u0131lar i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>&nbsp;Transparent TRUE ise label\u2019in arka plan\u0131n\u0131n g\u00f6r\u00fclmesini sa\u011flar(\u015feffafla\u015ft\u0131r\u0131r).<\/p>\n<p>&nbsp;FocusControl K\u0131sayol tu\u015fu tan\u0131mlan\u0131rsa focusu kime devredece\u011fini g\u00f6sterir.<\/p>\n<p>&nbsp;WordRap Label \u00fczerindeki yaz\u0131lar label\u0131n b\u00fcy\u00fckl\u00fc\u011f\u00fcn\u00fc a\u015farsa bir alt sat\u0131ra ge\u00e7mesini sa\u011flar.<\/p>\n<p>&nbsp;ShowAccelChar TRUE ise ba\u015f\u0131na &amp; i\u015fareti koyulan karekterin alt\u0131 \u00e7izili olarak g\u00f6sterilir, k\u0131sa yol tu\u015fu olarak kullan\u0131l\u0131r.<\/p>\n<p>&nbsp;<b>TMemo<\/b> Nesnesi \u00c7ok sat\u0131rl\u0131 bilgi giri\u015flerinin yap\u0131ld\u0131\u011f\u0131 nesnelerdir.<\/p>\n<p>&nbsp;Alignment Memo i\u00e7indeki say\u0131lar\u0131n sa\u011fa sola ortaya konu\u00e7lanmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>&nbsp;Lines Memodaki sat\u0131rlar\u0131 \u00f6\u011frenmeye ve de\u011fi\u015ftirmeye yarar.<\/p>\n<p>&nbsp;Momo1.Lines[5]:=\u2019Seni seviyem\u2019;&nbsp; &nbsp; ifadesi 6. sat\u0131ra Seni seviyem yazar.<\/p>\n<p>&nbsp;Memo1.Lines.Strings[6]:=\u2019Bende\u2019;&nbsp; ifadesi 7. sat\u0131ra Bende yazar.<\/p>\n<p>&nbsp;Lines.Count Memodaki sat\u0131r say\u0131s\u0131n\u0131 verir.<\/p>\n<p>&nbsp;Lines.Add Memoya sat\u0131r ekler.<\/p>\n<p>&nbsp;Memo1.Lines.Add(\u2018Sevmek g\u00fczeldir\u2019); Lines.Insert Araya sat\u0131r ekler.<\/p>\n<p>&nbsp;Memo1.Lines.Insert(3, \u2018Sende seviyo musun\u2019);<\/p>\n<p>&nbsp;Lines.Exchanges \u0130ki sat\u0131r\u0131n yerini de\u011fi\u015ftirir.<\/p>\n<p>&nbsp;Memo1.Lines.Exchanges(4,6); Lines.Move Sat\u0131r\u0131n yerini de\u011fi\u015ftirir.<\/p>\n<p>&nbsp;Memo1.Lines.Move(2,3); Lines.IndexOf Verilen de\u011ferin memoda ka\u00e7\u0131nc\u0131 sat\u0131rda oldu\u011funu verir. De\u011feri bulamazsa -1 de\u011feri d\u00f6ner.<\/p>\n<p>&nbsp;Memo1.Lines.IndexOf(\u2018Bende\u2019); Lines.SaveToFile Memodaki yaz\u0131y\u0131 dosyaya kaydeder.<\/p>\n<p>&nbsp;Memo1.Lines.SaveToFile(\u2018Deneme.txt\u2019);<\/p>\n<p>&nbsp;Lines.LoadFromFile Memoya dosyadan bilgi y\u00fckler.<\/p>\n<p>&nbsp;Memo1.LoadFromFile(\u2018Autexec.bat\u2019); WantReturn TRUE ise enter tu\u015fu imleci bir alt sat\u0131ra ge\u00e7irir WantTab Tab tu\u015fu normalde form \u00fczerindeki nesneleri dola\u015fmak i\u00e7in kullan\u0131l\u0131r. TRUE de\u011ferini al\u0131rsa bu \u00f6zelli\u011fini kaybeder ve memo i\u00e7inde kullan\u0131lmaya ba\u015flan\u0131r.&nbsp;<\/p>\n<p>&nbsp;ScrollBars Memo i\u00e7indeki yaz\u0131lar memoya s\u0131\u011fmad\u0131\u011f\u0131 zaman kayd\u0131rma \u00e7\u0131buklar\u0131 ekler.<\/p>\n<p>&nbsp;<b>TButton<\/b> Nesnesi Komut d\u00fc\u011fmeleridir.<\/p>\n<p>&nbsp;Cancel TRUE ise cancel tu\u015fu bu button i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>&nbsp;Default TRUE ise enter tu\u015fu bu button i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>&nbsp;ModalResult Buttona bas\u0131ld\u0131\u011f\u0131nda \u00e7e\u015fitli sonu\u00e7lar d\u00f6nderebilir.<\/p>\n<p>&nbsp;Se\u00e7ilene g\u00f6re de\u011fi\u015fik komutlar \u00e7al\u0131\u015fabilir.<\/p>\n<p>&nbsp;<b>TCheckBox<\/b> Nesnesi Se\u00e7enek kutucuklar\u0131d\u0131r.<\/p>\n<p>&nbsp;AllowGrayed TRUE ise CheckBox\u2019\u0131n gri hale de gelmesini sa\u011flar.<\/p>\n<p>&nbsp;Checked TRUE ise onayl\u0131 demektir.<\/p>\n<p>&nbsp;State CheckBox\u2019\u0131n durumunu \u00f6\u011frenmeye, de\u011fi\u015ftirmeye yarar.<\/p>\n<p>&nbsp;TRadioButton Radyo butonu \u015feklindeki se\u00e7enek kutucuklar\u0131d\u0131r.<\/p>\n<p>&nbsp;Ayn\u0131 ta\u015f\u0131y\u0131c\u0131 \u00fczerindekilerden sadece bir tanesi i\u015faretlenebilir.<\/p>\n<p>&nbsp;<b>TListBox<\/b> Belli elemanlar\u0131 listelemeye yarar.<\/p>\n<p>&nbsp;Column Elemanlar\u0131n ka\u00e7 kolonla s\u0131ralanaca\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<p>&nbsp;ExtendedSelect TRUE ise par\u00e7al\u0131 olarak birden fazla eleman se\u00e7ilebilmesine olanak verir.<\/p>\n<p>&nbsp;Items Listedeki elemanlar\u0131 \u00f6\u011frenmeye ve de\u011fi\u015ftirmeye yarar.<\/p>\n<p>&nbsp;TListBox1.Items[3]:=\u2019Delphi\u2019; Item.Add Yeni elemanlar eklenmesini sa\u011flar.<\/p>\n<p>&nbsp; ListBox1.Items.Add(\u2018mamy\u2019); Items.Insert Araya eleman ekler.<\/p>\n<p>&nbsp;ListBox1.Items.Insert(7, \u2018\u0130stanbul\u2019);<\/p>\n<p>&nbsp;Items.Count Eleman say\u0131s\u0131n\u0131 verir.<\/p>\n<p>&nbsp;Items.ItemIndex Se\u00e7ili nesnenin indexini verir.<\/p>\n<p>&nbsp;TopIndex Ekranda en \u00fcstte g\u00f6r\u00fclen eleman\u0131n indeksini \u00f6\u011frenmeye ve de\u011fi\u015ftirmeye yarar.<\/p>\n<p>&nbsp;ListBox1.TopIndex:=3; Items.IndexOf Verilen eleman\u0131n ka\u00e7\u0131nc\u0131 oldu\u011funu d\u00f6nderir.<\/p>\n<p>&nbsp;ListBox1.Item.IndexOf(\u2018Mami\u2019);<\/p>\n<p>&nbsp;Items.Move Eleman\u0131n yerini de\u011fi\u015ftirir.<\/p>\n<p>&nbsp; Items.Move(4, 7);&nbsp; 4.sat\u0131r\u0131 7.sat\u0131ra ta\u015f\u0131r. Items.Delete Eleman siler.<\/p>\n<p>&nbsp; ListBox1.Items.Delete(9); Items.Exchange \u0130ki \u00f6\u011fenin yerini de\u011fi\u015ftirir.<\/p>\n<p>&nbsp; ListBox1.Items.Exchange(5,2); Items.LoadFromFile Elemanlar\u0131 dosyadan y\u00fckler.<\/p>\n<p>&nbsp; &nbsp;ListBox1.Items.LoadFromFile(\u2018Deneme.txt\u2019);<\/p>\n<p>&nbsp;Items.SaveToFile Elemanlar\u0131 dosyaya kaydeder.<\/p>\n<p>&nbsp;ListBox1.Items.SaveToFile(\u2018Dersler.dat\u2019); IntegralHeight TRUE ise eleman\u0131n hepsi g\u00f6sterilir.&nbsp;<span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">Par\u00e7al\u0131, yar\u0131m&nbsp; g\u00f6sterim kapat\u0131l\u0131r.&nbsp;<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;ItemHeight Elemanlar\u0131n y\u00fcksekli\u011fini belirler.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;Style \u00f6zelli\u011fi lbOwnerDrawFixed olmal\u0131 MultiSelect TRUE ise \u00e7oklu se\u00e7ime izin verir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;Style Elemanlar\u0131 nas\u0131l g\u00f6sterece\u011fini verir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;Standart : B\u00fct\u00fcn elemanlar ayn\u0131 y\u00fcksekliktedir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;lbOwnerDrawFixed: B\u00fct\u00fcn elemanlar ayn\u0131 y\u00fckseklite olmak \u00fczere ItemHeight ile d\u00fczenlenebilir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;lbOwnerDrawVariable: Elemanlar farkl\u0131 y\u00fcsekliklerde ayarlanabilir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;SelCount \u00c7oklu se\u00e7imlerde ka\u00e7 tane eleman\u0131n se\u00e7ildi\u011fini verir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;Selected Belirli bir eleman\u0131n se\u00e7ili olup olmad\u0131\u011f\u0131n\u0131 sorgular.&nbsp; &nbsp;Selected[7] gibi.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;Sorted Elemanlar\u0131 s\u0131ral\u0131 olarak listeler.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;<\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;\"><b>TComboBox<\/b><\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\"> A\u015fa\u011f\u0131ya do\u011fru a\u00e7\u0131lan liste kutusudur.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;DropDownCount ComboBox a\u00e7\u0131ld\u0131\u011f\u0131nda ka\u00e7 sat\u0131r\u0131n listelence\u011fini tan\u0131mlar.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;MaximumLength Elemanlar\u0131n en fazla uzunlu\u011funu verir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;Style ComboBox\u2019\u0131n tipini belirler.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;Items TListBox\u2019taki gibidir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;Text ComboBox\u2019\u0131n se\u00e7ilen eleman\u0131n\u0131 verir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;<\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;\"><b>TGroupBox<\/b><\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\"> Nesneleri gruplamaya yarar. Ta\u015f\u0131y\u0131c\u0131 bir nesnedir. Mesela&nbsp; bu nesne silinirse i\u00e7indeki nesnelerde silinir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;<\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;\"><b>TPanel<\/b><\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\"> D\u00fcz ta\u015f\u0131y\u0131c\u0131 bir nesnedir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;<\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;\"><b>TRadioGroup<\/b><\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\"> RadioButtonlar\u0131 grupland\u0131rmaya yarar.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;Items. Bu \u00f6zellik ile butonlar eklenebilir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;ItemIndex \u0130\u015faretli olan eleman\u0131n indexini verir Colums Elemanlar\u0131n ka\u00e7 s\u00fct\u00fcnla dizilece\u011fini belirtir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;<\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;\"><b>TFrame<\/b><\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\"> Form gibi bir ta\u015f\u0131y\u0131c\u0131 bir nesnedir. Ancak Frameler yeni bir nesneymi\u015f gibi ba\u015fka formlarda kullan\u0131labilir. Tek ba\u015flar\u0131na kullan\u0131lamazlar. Yeni bir frame olu\u015fturmak i\u00e7in File men\u00fcs\u00fcnden New Frame se\u00e7ilir. Frame olu\u015fturulup kaydedildikten sonra component paletten TFrame nesnesiyle kullan\u0131labilir. Yani \u00f6nce Frame yaratman\u0131z. gerekir. T\u00fcm \u00f6zellikleri formlar gibidir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;<\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;\"><b>TAction<\/b><\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\"> Belli komutlar\u0131 i\u00e7inde bar\u0131nd\u0131ran bir nesnedir. Ayn\u0131 komutlar \u00e7e\u015fitli yerlerde kullan\u0131lacaksa i\u015fleri kolayla\u015ft\u0131r\u0131r. \u00c7ift t\u0131klad\u0131\u011f\u0131n\u0131zda a\u00e7\u0131lan pencereden kendi komutlar\u0131n\u0131z\u0131 ve ya tan\u0131ml\u0131 komutlar\u0131 se\u00e7ebilirsiniz. Bu komutlar\u0131 kullanabilmek i\u00e7in nesnelerin Action k\u0131sm\u0131nda belirtmeniz yeterlidir.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;<\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;\"><b>TMainMenu<\/b><\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\"> Ana men\u00fc olu\u015fturmaya yarayan nesnedir. \u00c7ift t\u0131klad\u0131\u011f\u0131n\u0131zda veya Items \u00f6zelli\u011fine t\u0131klad\u0131\u011f\u0131n\u0131zda a\u00e7\u0131lan pencereden men\u00fcler tan\u0131mlan\u0131r. ImageList \u00f6zelli\u011fi ile TImageList nesnesiyle se\u00e7ilen iconlar\u0131n men\u00fclerle kullan\u0131lmas\u0131n\u0131 sa\u011flar.<\/span><\/p>\n<p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">&nbsp;<\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;\"><b>TImageList<\/b><\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\"> Bu nesne \u00e7e\u015fitli iconlar\u0131, resimleri liste halinde toplaman\u0131z\u0131 ve onlar\u0131 icon kullanlabilecek nesnelerde kullanman\u0131z\u0131 sa\u011flar. \u00c7ift t\u0131klad\u0131\u011f\u0131n\u0131zda a\u00e7\u0131lan pencereden iconlar se\u00e7ilebilir. Iconlar\u0131n geni\u015fli\u011fi ve y\u00fckseklikleri ayarlanabilir. Image kullan\u0131labilecek nesnelerin(Mesela men\u00fclerde, speedbuttonlarda) ImageList \u00f6zelli\u011finde belirtirseniz ilk imaj ilk elemana, sonraki imaj sonraki elemana otomatik olarak atan\u0131r. \u0130sterseniz daha sonra da de\u011fi\u015ftirebilirsiniz.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-755315d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"755315d\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-35bf8e7\" data-id=\"35bf8e7\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5fa5223 elementor-widget elementor-widget-text-editor\" data-id=\"5fa5223\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3 style=\"margin-right: 180px; margin-left: 0px; font-family: &quot;Trebuchet MS&quot;, Verdana, Helvetica, Arial, sans-serif; border: none; padding: 2px 0px 0px; font-size: 1.7em; color: rgb(17, 80, 152); line-height: 21.25px; background-color: rgb(225, 235, 242); margin-top: 0px !important; margin-bottom: 0.3em !important; float: none !important;\"><a href=\"http:\/\/www.delphiturkiye.com\/forum\/viewtopic.php?p=2704&amp;sid=5247fc7e76122230e1cb8d0b26a7fda3#p2704\" style=\"color: rgb(16, 82, 137); direction: ltr; unicode-bidi: embed; display: inline-block;\">Object Oriented Programlama<\/a><\/h3><ul style=\"list-style-type: none; padding-right: 0px; padding-left: 0px; float: none; position: absolute; right: 0px; top: 5px; max-width: 40%; color: rgb(51, 51, 51); font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 10px; background-color: rgb(225, 235, 242);\"><li style=\"float: left; margin-right: 3px;\"><a href=\"http:\/\/www.delphiturkiye.com\/forum\/posting.php?mode=quote&amp;p=2704&amp;sid=5247fc7e76122230e1cb8d0b26a7fda3\" title=\"Al\u0131nt\u0131 ile cevapla\" style=\"background-color: rgb(233, 233, 233); color: rgb(211, 17, 65); direction: ltr; unicode-bidi: embed; display: inline-block; padding: 2px 3px; font-size: 13px; font-weight: 600; font-family: &quot;Open Sans&quot;, &quot;Droid Sans&quot;, Verdana, Arial, Helvetica; line-height: 1.4; text-align: center; white-space: nowrap; vertical-align: middle; touch-action: manipulation; cursor: pointer; user-select: none; border: 1px solid rgb(199, 195, 191); border-radius: 4px; background-image: linear-gradient(rgb(255, 255, 255) 0%, rgb(233, 233, 233) 100%); box-shadow: rgb(255, 255, 255) 0px 0px 0px 1px inset;\"><span aria-hidden=\"true\" style=\"width: 1.28571em; display: inline-block; font-family: FontAwesome; font-size: 14px; text-rendering: auto; color: rgb(143, 143, 143);\"><\/span><span style=\"position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); border: 0px; font-size: 0px;\">Al\u0131nt\u0131<\/span><\/a><\/li><\/ul><p style=\"margin: 0px 0px 0.6em; line-height: 1.2em; font-size: 10px; padding: 0px 0px 5px; font-family: Verdana, Helvetica, Arial, sans-serif; clear: both; color: rgb(51, 51, 51); background-color: rgb(225, 235, 242);\"><br><\/p><div style=\"clear: both; min-height: 3em; overflow: auto hidden; line-height: 1.4em; font-family: &quot;Lucida Grande&quot;, &quot;Trebuchet MS&quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 1.3em; padding-bottom: 1px; color: rgb(51, 51, 51); background-color: rgb(225, 235, 242);\">Nesne Tabanl\u0131 Programlama (1)<br>Component Writers Guide \u201cOBJECT ORIENTED PROGRAMMING WITH DELPHI\u201d<br><br>Konu ile ilgili kendi \u00f6rneklerim ve baz\u0131 ek bilgileri i\u00e7eren d\u00f6k\u00fcmana k\u0131sa bir zaman sonra \u201cNesne Tabanl\u0131 Programlama \u2013 \u00d6rnekler\u201d ba\u015fl\u0131\u011f\u0131 alt\u0131nda ula\u015fabilirsiniz.<br><br>&#8212; DELPHI ve NESNE TABANLI PROGRAMLAMA(OOP) &#8212;<br><br>Bile\u015fen yazar\u0131 bir delphi programc\u0131s\u0131 olarak yeni bir bile\u015fen yazarken, uygulama programc\u0131lar\u0131n\u0131n kullanmaya ihtiya\u00e7 duymad\u0131\u011f\u0131 s\u0131n\u0131f kavramlar\u0131 ile ilgilenmek durumunda kal\u0131rs\u0131n\u0131z. Yaz\u0131lan bile\u015fenin alt seviyedeki baz\u0131 \u00f6zelliklerini, bu bile\u015feni kullanacak programc\u0131lardan gizlemeniz gerekir.<br><br>\u00c7ok y\u00f6nl\u00fc ve yeniden kullan\u0131labilir bir bile\u015fen yazmak i\u00e7in \u00f6ncelikle;<br>&#8211; Yaz\u0131lacak bile\u015fene uygun temel bile\u015fen se\u00e7ilir<br>&#8211; Bile\u015feni kullanacak programc\u0131 taraf\u0131ndan, sadece ihtiya\u00e7 duyulabilecek \u00f6zellik\/metodlar kullan\u0131ma a\u00e7\u0131l\u0131r.<br><br>Yeni bile\u015fenler yazmaya ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki konulara a\u015fina olman\u0131z gerekmektedir. Bunlar ayn\u0131 zamanda nesne tabanl\u0131 programlama ile de yak\u0131ndan ili\u015fkilidir.<br><br>&#8211; yeni s\u0131n\u0131f tan\u0131mlama<br>&#8211; ata, torun hiyerar\u015fisi ve s\u0131n\u0131flar<br>&#8211; s\u0131n\u0131flara eri\u015fimin kontrol\u00fc<br>&#8211; metodlara g\u00f6nderme yapmak<br>&#8211; s\u0131n\u0131f \u00fcyelerini soyutlama<br>&#8211; s\u0131n\u0131flar ve pointerlar<br><br>&#8212; Yeni S\u0131n\u0131flar Tan\u0131mlama &#8212;<br><br>Bile\u015fen yazar\u0131 ile uygulama programc\u0131s\u0131 aras\u0131ndaki fark; uygulama programc\u0131s\u0131 mevcut s\u0131n\u0131flar\u0131n \u00f6rnekleri ile \u00e7al\u0131\u015f\u0131rken, bile\u015fen yazar\u0131n\u0131n yeni s\u0131n\u0131flar olu\u015fturmas\u0131d\u0131r.<br><br>Her s\u0131n\u0131f asl\u0131nda bir tiptir. Bu terminolojiyi kullanmasan\u0131z bile, bir programc\u0131 olarak herzaman tip ve \u00f6rneklerle \u00e7al\u0131\u015f\u0131rs\u0131n\u0131z. Mesela integer tipinden bir de\u011fi\u015fken tan\u0131mlarken.. S\u0131n\u0131flar genellikle, bildi\u011fimiz temel veri tiplerinden daha karma\u015f\u0131kt\u0131r ancak ayn\u0131 \u015fekilde \u00e7al\u0131\u015f\u0131rlar; ayn\u0131 tipin \u00f6rneklerine de\u011fi\u015fik de\u011ferler atayarak farkl\u0131 i\u015fler yapt\u0131rabilirsiniz.<br><br>\u00d6rne\u011fin iptal ve tamam ba\u015fl\u0131kl\u0131 iki tane buton i\u00e7eren bir form olu\u015fturmaya s\u0131k s\u0131k gereksinim duyulur. Herbir buton ayn\u0131 TButton s\u0131n\u0131f\u0131n\u0131n bir \u00f6rne\u011fidir fakat Caption \u00f6zelliklerine ve OnClick olaylar\u0131na ayr\u0131 de\u011ferler atayarak, birbirinden farkl\u0131 davranan butonlar yapabilirsiniz.<br><br>&#8212; Yeni S\u0131n\u0131flar T\u00fcretme &#8212;<br><br>Yeni bir s\u0131n\u0131f t\u00fcretmek i\u00e7in iki sebep vard\u0131r:<br>&#8211; Mevut s\u0131n\u0131f\u0131n, yeni s\u0131n\u0131fta da bulunmas\u0131 istedi\u011fimiz \u00f6zelliklerini tekrar yazmaktan kurtulmak<br>&#8211; S\u0131n\u0131fa yeni yetenekler kazand\u0131rmak<br><br>Her iki durumda da ama\u00e7 yeniden kullan\u0131labilir nesneler olu\u015fturmakt\u0131r. E\u011fer bile\u015fenlerinizi yeniden kullan\u0131labilirli\u011fi g\u00f6z\u00f6n\u00fcne alarak dizayn ederseniz, ayn\u0131 \u015feyleri yeniden yazmaktan kurtulup zamandan kazanabilirsiniz. S\u0131n\u0131flar\u0131n\u0131za, uygun haz\u0131r de\u011ferler verin, fakat bu de\u011ferlerin de\u011fi\u015ftirilebilmelerine de izin verin.<br><br>&#8212; S\u0131n\u0131flar\u0131n Haz\u0131r De\u011ferlerini Tekrardan Kurtarmak &#8212;<br><br>Pek\u00e7ok programc\u0131 tekrardan ka\u00e7\u0131nmaya \u00e7al\u0131\u015f\u0131r. Bu \u015fekilde defalarca ayn\u0131 kod sat\u0131rlar\u0131n\u0131 yazd\u0131\u011f\u0131n\u0131z\u0131 farkederseniz, bu kodu bir prosed\u00fcr yada fonksiyon i\u00e7erisine yerle\u015ftirin yada bir\u00e7ok programda kullanabilece\u011finiz bir rutin k\u00fct\u00fcphanesi olu\u015fturun. Ayn\u0131 mant\u0131k nesneler i\u00e7in de ge\u00e7erlidir. E\u011fer bir nesnenin s\u00fcrekli ayn\u0131 \u00f6zelliklerini de\u011fi\u015ftirdi\u011finizi yada ayn\u0131 metod \u00e7a\u011fr\u0131lar\u0131 ile u\u011fra\u015ft\u0131\u011f\u0131n\u0131z\u0131 farkederseniz, bu \u00f6zellikleri kendisinde haz\u0131r olarak bulunduran bir nesne olu\u015fturmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz.<br><br>\u00d6rne\u011fin her uygulamam\u0131zda baz\u0131 i\u015flemler i\u00e7in gerekli olan bir dialog kutusu olu\u015fturdu\u011funuzu farzedelim. Her seferinde bu dialog kutusunu olu\u015fturmak zor olmasa da, gerekli de de\u011fildir. Dialog kutusu bir kereli\u011fine dizayn edilir, \u00f6zellikleri belirlenir ve bile\u015fen paletinde ili\u015fkili oldu\u011fu b\u00f6l\u00fcme kurulur. Dialog kutusunu yeniden kullan\u0131labilir bir bile\u015fene \u00e7evirerek sadece tekrar eden i\u015flemlerden kurtulmu\u015f olmazs\u0131n\u0131z, ayn\u0131 zamanda her dialog kutusu olu\u015fturuldu\u011fundaki hata olu\u015fma olas\u0131l\u0131\u011f\u0131n\u0131 da bertaraf etmi\u015f olursunuz.<br><br>&lt;Not&gt; E\u011fer mevcut bile\u015fenin sadece object inspectordan da g\u00f6r\u00fcnt\u00fclenebilen, yay\u0131mlanm\u0131\u015f \u00f6zelliklerini de\u011fi\u015ftirmek, yada bile\u015fen\/bile\u015fen grubunun belirli olay y\u00f6neticilerini kaydetmek isterseniz bunu bile\u015fen \u015fablonlar\u0131 olu\u015fturarak daha kolay bir \u015fekilde ger\u00e7ekle\u015ftirebilirsiniz.<br><br>&#8212; S\u0131n\u0131fa Yeni Yetenekler Kazand\u0131rmak &#8212;<br><br>Yeni bir bile\u015fenler olu\u015fturman\u0131n temel nedeni, bile\u015fene mevcut halinde bulunmayan \u00f6zellikler eklemektir. Bunu yaparken, ya mevcut bile\u015fenden yada daha temel \u00f6zet s\u0131n\u0131ftan(TComponent, TControl..vb) t\u00fcretme yap\u0131l\u0131r.<br><br>Yeni bile\u015feninizi, kullanmay\u0131 d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcn\u00fcz temel \u00f6zelliklerin \u00e7o\u011funu i\u00e7eren bir s\u0131n\u0131ftan t\u00fcretin. S\u0131n\u0131fa yeni yetenekler kazand\u0131rabilirsiniz fakat mevcut \u00f6zelliklerini \u00e7\u0131kartamazs\u0131n\u0131z. Bu nedenle mevcut s\u0131n\u0131f, sizin s\u0131n\u0131f\u0131n\u0131zda kullanmak istemedi\u011finiz baz\u0131 \u00f6zellikler i\u00e7eriyorsa, s\u0131n\u0131f\u0131n\u0131z\u0131 bu s\u0131n\u0131f\u0131n hiyerar\u015fideki bir \u00fcst ata s\u0131n\u0131f\u0131ndan t\u00fcretmeniz gerekir.<br><br>\u00d6rne\u011fin list box bile\u015fenine yeni \u00f6zellikler eklemek isterseniz, bile\u015feninizi TListBox s\u0131n\u0131f\u0131ndan t\u00fcretebilirsiniz. Bununla birlikte, e\u011fer standart list box\u2019a baz\u0131 \u00f6zellikler eklemek fakat baz\u0131 \u00f6zelliklerini de devre d\u0131\u015f\u0131 b\u0131rakmak isterseniz, nesnenizi TListBox\u2019\u0131n ata s\u0131n\u0131f\u0131 olan TCustomListBox\u2019dan t\u00fcretmeniz gerekir. B\u00f6ylelikle list box\u2019\u0131n sadece istedi\u011finiz \u00f6zelliklerini yeniden tasarlayabilir ve yeni \u00f6zellikler ekleyebilirsiniz.<br><br>&#8212; Yeni Nesne S\u0131n\u0131flar\u0131 Tan\u0131mlama &#8212;<br><br>Standart bile\u015fenlere ek olarak Delphi, yeni nesneler t\u00fcretmek i\u00e7in bir\u00e7ok \u00f6zet s\u0131n\u0131f da sa\u011flar. Kendi bile\u015fenlerinizi olu\u015ftururken se\u00e7ece\u011finiz ba\u015flang\u0131\u00e7 noktas\u0131 size ba\u015flayabilece\u011finiz s\u0131n\u0131f\u0131 g\u00f6sterebilir.<br><br>Yeni bir bile\u015fen olu\u015ftururken; s\u0131n\u0131f tan\u0131m\u0131n\u0131 bile\u015fenin unit dosyas\u0131n\u0131n i\u00e7ine ekleyin.<br>Buradaki basit bir grafik bile\u015fenin tan\u0131m\u0131:<br>type<br>TSampleShape = class(TgraphicControl)<br>end;<br><br>Tamamlanm\u0131\u015f bir bile\u015fen tan\u0131m\u0131 genellikle end\u2019den \u00f6nce; \u00f6zellik, olay ve metod tan\u0131mlar\u0131 i\u00e7erir. Fakat yukar\u0131daki gibi bir tan\u0131m da ge\u00e7erlidir ve ek \u00f6zellikler i\u00e7in de bir ba\u015flang\u0131\u00e7 noktas\u0131 sa\u011flar.<br><br>&#8212; Ata, Torun ve S\u0131n\u0131f Hiyerar\u015fisi &#8212;<br><br>Uygulama programc\u0131lar\u0131 her kontrol\u00fcn form \u00fczerindeki koordinatlar\u0131n\u0131 belirleyen Top ve Left \u00f6zellikleri oldu\u011funu kabul ederler. Onlar i\u00e7in t\u00fcm bile\u015fenlerin bu \u00f6zelliklerini ortak atalar\u0131 olan TControl\u2019den almas\u0131 bir \u00f6nem ta\u015f\u0131maz. Siz bir bile\u015fen olu\u015ftururken bununla birlikte bile\u015feninizi hangi s\u0131n\u0131ftan t\u00fcretece\u011finizi ve hangi \u00f6zelliklerin bu ata s\u0131n\u0131ftan devral\u0131nd\u0131\u011f\u0131n\u0131 da bilmek zorundas\u0131n\u0131z. B\u00f6ylelikle zaten devral\u0131nm\u0131\u015f \u00f6zellikleri yeniden olu\u015fturman\u0131za gerek kalmaz.<br><br>Bile\u015fenin t\u00fcretildi\u011fi s\u0131n\u0131fa, o bile\u015fenin ata s\u0131n\u0131f\u0131 denir. T\u00fcretilen her bile\u015fen bir ata s\u0131n\u0131ftan t\u00fcrer ve o da bir ata s\u0131n\u0131ftan.. Bu hiyerar\u015fi TControl s\u0131n\u0131f\u0131na kadar s\u00fcrer. T\u00fcretti\u011finiz her s\u0131n\u0131f bu ata s\u0131n\u0131flar\u0131n torunlar\u0131d\u0131r.<br><br>T\u00fcm ata-torun ili\u015fkilerinin hepsi birden s\u0131n\u0131flar\u0131n uygulama i\u00e7erisinde olu\u015fturdu\u011fu hiyerar\u015fidir. S\u0131n\u0131f\u0131n\u0131z ata s\u0131n\u0131f\u0131ndan t\u00fcm \u00f6zelliklerini devrald\u0131\u011f\u0131 ve yeni \u00f6zellikler, metodlar ekledi\u011fi yada mevcut s\u0131n\u0131f\u0131n baz\u0131 \u00f6zelliklerini yeniden tan\u0131mlad\u0131\u011f\u0131 s\u00fcrece, hiyerar\u015fideki herbir jenerasyon, atas\u0131ndan daha fazlas\u0131n\u0131 i\u00e7erir.<br><br>Ata s\u0131n\u0131f olarak haz\u0131r bir s\u0131n\u0131f belirlemediyseniz, Delphi bile\u015feninizi, nesne hiyerar\u015fisindeki en temel ata s\u0131n\u0131f olan TObject\u2019den t\u00fcretir.<br><br>Hangi bile\u015fenden t\u00fcretme yapaca\u011f\u0131n\u0131z\u0131 se\u00e7mek i\u00e7in genel kural basittir: yeni bile\u015feninizde bulundurmay\u0131 istedi\u011finiz \u00f6zelliklerden m\u00fcmk\u00fcn oldu\u011funca \u00e7o\u011funu i\u00e7eren bile\u015feni se\u00e7in, fakat bu bile\u015fen, sizin bile\u015feninizin i\u00e7ermesini istemedi\u011finiz \u00f6zelliklerden hi\u00e7birini bar\u0131nd\u0131rmas\u0131n. Her zaman bile\u015fenlere yeni \u015feyler ekleyebilirsiniz, fakat \u00e7\u0131karamazs\u0131n\u0131z..<br><br><br>Nesne Tabanl\u0131 Programlama (2)<br>&#8212; Eri\u015fim Kontrol\u00fc &#8212;<br><br>\u00d6zellik ve metodlarda g\u00f6r\u00fcn\u00fcrl\u00fck olarak da bilinen, 5 seviye eri\u015fim kontrol\u00fc vard\u0131r. G\u00f6r\u00fcn\u00fcrl\u00fck, hangi kodun, s\u0131n\u0131f\u0131n hangi k\u0131s\u0131mlar\u0131na eri\u015febilece\u011fini belirler. G\u00f6r\u00fcn\u00fcrl\u00fc\u011f\u00fc belirterek, bile\u015fenlerinize aray\u00fcz tasarlars\u0131n\u0131z.<br><br>A\u015fa\u011f\u0131daki tablo en k\u0131s\u0131tlanm\u0131\u015fdan, en ula\u015f\u0131labilire do\u011fru g\u00f6r\u00fcn\u00fcrl\u00fck seviyelerini g\u00f6sterir :<br><br>G\u00f6r\u00fcn\u00fcrl\u00fck &#8212; Anlam\u0131 &#8212; Ne i\u00e7in kullan\u0131l\u0131r ?<br>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br><br>1.)Private &#8212; Sadece, s\u0131n\u0131f\u0131n tan\u0131mlanm\u0131\u015f oldu\u011fu unit\u2019in i\u00e7erisindeki koddan ula\u015f\u0131labilir &#8212; Detaylar\u0131 gizlemek<br>2.)Protected &#8212; S\u0131n\u0131f yada bu s\u0131n\u0131f\u0131n torunlar\u0131n\u0131n tan\u0131mland\u0131\u011f\u0131 unit(lerin) i\u00e7erisindeki kodlardan ula\u015f\u0131labilir &#8212; Bile\u015fen yazarlar\u0131n\u0131 aray\u00fcz\u00fc tasarlamak<br>3.)Public &#8212; T\u00fcm kodlardan eri\u015filebilir &#8212; \u00c7al\u0131\u015fma zaman\u0131 aray\u00fcz\u00fc tasarlamak<br>4.)Automated &#8212; T\u00fcm kodlardan eri\u015filebilir. Otomasyon tip bilgisi \u00fcretilmi\u015ftir &#8212; Sadece OLE otomasyonu<br>5.)Published &#8212; T\u00fcm kodlardan ve Object Inspector\u2019dan eri\u015filebilir &#8212; Tasar\u0131m zaman\u0131 aray\u00fcz\u00fcn\u00fc tasarlamak<br><br>\u00d6\u011fenin, sadece s\u0131n\u0131f\u0131n tan\u0131mland\u0131\u011f\u0131 yerde kullan\u0131labilir olmas\u0131n\u0131 istiyorsan\u0131z, Private olarak tan\u0131mlay\u0131n; sadece o s\u0131n\u0131f\u0131n i\u00e7erisinde ve torunlar\u0131nda kullan\u0131labilir olmas\u0131n\u0131 istiyorsan\u0131z Protected olarak tan\u0131mlay\u0131n. Hat\u0131rlay\u0131n, e\u011fer bir \u00f6\u011fe, unit dosyas\u0131n\u0131n i\u00e7erisindeki herhangi bir yerde kullan\u0131labilir ise, bu dosyan\u0131n her yerinde kullan\u0131labilirdir. B\u00f6ylelikle, e\u011fer ayn\u0131 unitin i\u00e7erisinde iki s\u0131n\u0131f tan\u0131mlad\u0131ysan\u0131z, herbir s\u0131n\u0131f birbirinin private metodlar\u0131na ula\u015fabilir. Ata s\u0131n\u0131f\u0131n d\u0131\u015f\u0131ndaki bir unitten, bu ata s\u0131n\u0131ftan bir s\u0131n\u0131f t\u00fcretti\u011finizde; yeni unitdeki t\u00fcm s\u0131n\u0131flar, ata s\u0131n\u0131f\u0131n protected metodlar\u0131na ula\u015fabilecektir.<br><br>&#8212; Detaylar\u0131 Gizlemek &#8212;<br><br>S\u0131n\u0131f\u0131n bir k\u0131sm\u0131n\u0131 private olarak tan\u0131mlamak, bu k\u0131sm\u0131, s\u0131n\u0131f\u0131n unit dosyas\u0131n\u0131n d\u0131\u015f\u0131ndan g\u00f6r\u00fcnmez yapar. Tan\u0131mlamay\u0131 i\u00e7eren unit i\u00e7erisinde, kod bu k\u0131s\u0131ma sanki public olarak tan\u0131mlanm\u0131\u015f gibi ula\u015fabilir.<br><br>Buradaki \u00f6rnek, belirledi\u011finiz b\u00f6l\u00fcm\u00fc nas\u0131l private olarak tan\u0131mlay\u0131p, uygulama programc\u0131lar\u0131ndan gizleyebilece\u011finizi g\u00f6sterir. Listelenenler iki form unitini g\u00f6steriyor. Herbir form private k\u0131s\u0131ma de\u011fer atayan, kendi OnClick olay\u0131na sahiptir. Derleyici private k\u0131s\u0131ma yap\u0131lan atamalara, sadece formun tan\u0131mland\u0131\u011f\u0131 yerden izin verir.<br><br>unit HideInfo;<br>interface<br><br>uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs;<br><br>type<br>TSecretForm = class(TForm) { yeni form tan\u0131mla }<br>procedure FormCreate(Sender: TObject);<br>private { private k\u0131sm\u0131 tan\u0131mla }<br>FSecretCode: Integer; { private bir alan tan\u0131mla }<br>end;<br><br>var<br>SecretForm: TSecretForm;<br><br>implementation<br>procedure TSecretForm.FormCreate(Sender: TObject);<br>begin<br>FSecretCode := 42; { bu do\u011fru olarak derlenir }<br>end;<br>end. { unitin sonu }<br><br>unit TestHide; { bu ana form dosyas\u0131 }<br><br>interface<br>uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs,<br>HideInfo; { TSecretForm ile uniti kullan }<br><br>type<br>TTestForm = class(TForm)<br>procedure FormCreate(Sender: TObject);<br>end;<br>var<br>TestForm: TTestForm;<br><br>implementation<br>procedure TTestForm.FormCreate(Sender: TObject);<br>begin<br>SecretForm.FSecretCode := 13; {derleyici &#8220;Field identifier expected&#8221; hatas\u0131 ile durur }<br>end;<br>end. { unitin sonu }<br><br>HideInfo unitini kullanan program hernekadar TSecretForm tipindeki nesnelere ula\u015fabilse de, FSecretCode k\u0131sm\u0131na bu nesnelerin hi\u00e7birinden ula\u015famaz.<br><br>&#8212; Bile\u015fen Yazar\u0131 Aray\u00fcz\u00fc Tan\u0131mlama &#8212;<br><br>S\u0131n\u0131f\u0131n bir b\u00f6l\u00fcm\u00fcn\u00fc protected olarak tan\u0131mlamak, bu k\u0131sm\u0131, s\u0131n\u0131f\u0131n sadece kendisine ve torun s\u0131n\u0131flar\u0131na(ve unit doyalar\u0131n\u0131 payla\u015fan di\u011fer s\u0131n\u0131flara) g\u00f6r\u00fcn\u00fcr yapar.<br><br>S\u0131n\u0131flara bile\u015fen yazar\u0131 aray\u00fcz\u00fc tasarlamak i\u00e7in protected tan\u0131m\u0131n\u0131 kullanabilirsiniz. Uygulama unitleri protected b\u00f6l\u00fcmlere ula\u015famaz fakat t\u00fcretilmi\u015f s\u0131n\u0131flar ula\u015fabilir. Bu demek oluyor ki; bile\u015fen yazarlar\u0131, detaylar\u0131 uygulama programc\u0131lar\u0131na g\u00f6r\u00fcn\u00fcr yapmadan, s\u0131n\u0131f\u0131n \u00e7al\u0131\u015fma \u015feklini de\u011fi\u015ftirebilirler.<br><br>&#8212; \u00c7al\u0131\u015fma Zaman\u0131 Aray\u00fcz\u00fc Tan\u0131mlama &#8212;<br><br>S\u0131n\u0131f\u0131n bir b\u00f6l\u00fcm\u00fcn\u00fc public olarak tan\u0131mlamak, bu k\u0131sm\u0131, s\u0131n\u0131fa ula\u015f\u0131m\u0131 olan t\u00fcm kodlara g\u00f6r\u00fcn\u00fcr yapar.<br><br>Public b\u00f6l\u00fcmler \u00e7al\u0131\u015fma zaman\u0131nda t\u00fcm kodlarda kullan\u0131labilir, bu y\u00fczden s\u0131n\u0131flar\u0131n public k\u0131s\u0131mlar\u0131na onun \u00e7al\u0131\u015fma zaman\u0131 aray\u00fcz\u00fc denir. \u00c7al\u0131\u015fma zaman\u0131 aray\u00fcz\u00fc, \u00e7al\u0131\u015fma zaman\u0131ndaki girdiye ba\u011fl\u0131 \u00f6zellikler gibi dizayn zaman\u0131 i\u00e7in uygun yada anlaml\u0131 olmayan maddeler i\u00e7in kullan\u0131\u015fl\u0131d\u0131r. Uygulama geli\u015ftiriciler i\u00e7in tasarlad\u0131\u011f\u0131n\u0131z metodlar\u0131n public olmas\u0131 gereklidir.<br><br>Buradaki \u00f6rnek, bile\u015fenin \u00e7al\u0131\u015fma zaman\u0131 aray\u00fcz\u00fc olarak tasarlanm\u0131\u015f iki tane sadece okunabilir \u00f6zelli\u011fi g\u00f6steriyor:<br><br>type<br>TSampleComponent = class(TComponent)<br>private<br>FTempCelsius: Integer; { uygulama detaylar\u0131 private }<br>function GetTempFahrenheit: Integer;<br>public<br>property TempCelsius: Integer read FTempCelsius; { \u00f6zellikler public }<br>property TempFahrenheit: Integer read GetTempFahrenheit;<br>end;<br>&#8230;<br>function TSampleComponent.GetTempFahrenheit: Integer;<br>begin<br>Result := FTempCelsius * 9 div 5 + 32;<br>end;<br><br>&#8212; Tasar\u0131m Zaman\u0131 Aray\u00fcz\u00fcn Olu\u015fturulmas\u0131 &#8212;<br><br>S\u0131n\u0131f\u0131n bir b\u00f6l\u00fcm\u00fcn\u00fc published olarak tan\u0131mlamak, bu k\u0131sm\u0131 public yapar ve \u00e7al\u0131\u015fma zaman\u0131 tip bilgisini olu\u015fturur. Di\u011ferleri ile birlikte \u00e7al\u0131\u015fma zaman\u0131 tip bilgisi, Object Inspector\u2019\u0131n \u00f6zellik ve olaylara ula\u015famas\u0131na da izin verir.<br><br>Published olarak tan\u0131mlanm\u0131\u015f b\u00f6l\u00fcmler, object inspector\u2019dan da g\u00f6r\u00fcnt\u00fclenebilir ve s\u0131n\u0131f\u0131n tasar\u0131m zaman\u0131 aray\u00fcz\u00fcn\u00fc olu\u015ftururlar. Tasar\u0131m zaman\u0131 aray\u00fcz\u00fc, uygulama geli\u015ftiricinin dizayn zaman\u0131nda de\u011fi\u015ftirmek isteyebilece\u011fi t\u00fcm y\u00f6nleri i\u00e7ermeli, fakat \u00e7al\u0131\u015fma zaman\u0131 ortam\u0131 ile ilgili belli bilgilere ba\u011fl\u0131 olan t\u00fcm \u00f6zellikleri de uzak tutmal\u0131d\u0131r.<br><br>Uygulama geli\u015ftiriciler do\u011frudan de\u011fer atayamayaca\u011f\u0131ndan dolay\u0131, sadece okunabilir \u00f6zellikler, tasar\u0131m zaman\u0131 aray\u00fcz\u00fcn\u00fcn bir par\u00e7as\u0131 olamaz. Bu nedenle sadece okunabilir \u00f6zellikler, published yerine public olarak tan\u0131mlanmal\u0131d\u0131r.<br><br>Burada published olarak tan\u0131mlanm\u0131\u015f Temperature \u00f6zelli\u011fi g\u00f6r\u00fclmektedir. B\u00f6yle bir tan\u0131mlama ile bu \u00f6zellik Object Inspector\u2019dan da g\u00f6r\u00fcn\u00fcr olmu\u015f olur.<br><br>type<br>TSampleComponent = class(TComponent)<br>private<br>FTemperature: Integer; { detaylar private olarak tan\u0131mlanm\u0131\u015f }<br>published<br>property Temperature: Integer read FTemperature write FTemperature;{ yaz\u0131labilir ! }<br>end;<br><br>Nesne Tabanl\u0131 Programlama (3)<br><br>&#8212; Metodlara G\u00f6nderme Yapmak &#8212;<br><br>G\u00f6nderme, bir metod \u00e7a\u011fr\u0131s\u0131 ile kar\u015f\u0131la\u015ft\u0131\u011f\u0131nda, metoda ba\u015fvurulmas\u0131 gereken yerde, program\u0131n belirledi\u011fi yola ba\u015fvurur. Metodu \u00e7a\u011f\u0131ran kod, di\u011fer prosed\u00fcr yada fonksiyon \u00e7a\u011fr\u0131lar\u0131ndakine benzer. Fakat s\u0131n\u0131flar\u0131n farkl\u0131 metod \u00e7a\u011fr\u0131 \u015fekilleri vard\u0131r.<br><br>\u00dc\u00e7 tip metod \u00e7a\u011fr\u0131s\u0131 vard\u0131r<br>&#8211; Static<br>&#8211; Virtual<br>&#8211; Dynamic<br><br>&#8212; Statik Metodlar &#8212;<br><br>Siz tan\u0131mlarken ba\u015fka t\u00fcrl\u00fc belirtmedik\u00e7e t\u00fcm metodlar statiktir. Statik metodlar, normal bir prosed\u00fcr yada fonksiyon gibi \u00e7al\u0131\u015f\u0131rlar. Derleyici, metodun tam adresini belirler ve derleme zaman\u0131nda metoda ba\u011flant\u0131 sa\u011flar.<br><br>Statik metodlar\u0131n temel avantaj\u0131, bu metodlara \u00e7ok h\u0131zl\u0131 g\u00f6nderme yap\u0131labilmesidir. \u00c7\u00fcnk\u00fc derleyici metodun tam adresini belirler ve do\u011frudan ba\u011flant\u0131 sa\u011flar. Virtual ve dynamic metodlar ise tam tersi olarak, \u00e7al\u0131\u015fma zaman\u0131nda metodun adresine bakarak, daha fazla zaman gerektiren, do\u011frudan olmayan ba\u011flant\u0131 kullan\u0131rlar.<br><br>Static metodlar bir torun s\u0131n\u0131ftan t\u00fcretildi\u011finde kal\u0131tsal de\u011fi\u015fikli\u011fe u\u011framazlar. Statik metod i\u00e7eren bir s\u0131n\u0131f tan\u0131mlar, sonra da bundan yeni bir s\u0131n\u0131f t\u00fcretirseniz, t\u00fcretilmi\u015f s\u0131n\u0131f tam olarak ayn\u0131 adresteki ayn\u0131 metodu payla\u015f\u0131r. Bu static metodlar\u0131 ezemeyece\u011finiz anlam\u0131na gelir; statik metodlar hangi s\u0131n\u0131ftan \u00e7a\u011fr\u0131ld\u0131\u011f\u0131n\u0131 umursamaks\u0131z\u0131n, herzaman ayn\u0131 \u015feyleri yaparlar. E\u011fer t\u00fcretilmi\u015f s\u0131n\u0131f i\u00e7erisinde statik metod olarak ayn\u0131 isimde, ata s\u0131n\u0131ftaki gibi bir metod tan\u0131mlarsan\u0131z, yeni metod t\u00fcretilmi\u015f s\u0131n\u0131ftaki kal\u0131tsal olan\u0131n yerini kolayl\u0131kla al\u0131r.<br><br>&#8212; Bir Static Metod \u00d6rne\u011fi &#8212;<br><br>A\u015fa\u011f\u0131daki kodda ilk bile\u015fen iki adet static metod tan\u0131mlar. \u0130kincisi, ilk bile\u015fenden miras kalan metodlar\u0131n yerini alacak, ayn\u0131 isimlerde iki static metod tan\u0131mlar.<br><br>type<br>TFirstComponent = class(TComponent)<br>procedure Move;<br>procedure Flash;<br>end;<br><br>TSecondComponent = class(TFirstComponent)<br>procedure Move; { ayn\u0131 tan\u0131mlamaya ra\u011fmen, miras kalan metoddan farkl\u0131 }<br>function Flash(HowOften: Integer): Integer; { bir de bu farkl\u0131}<br>end;<br><br>&#8212; Virtual Metodlar &#8212;<br><br>Virtual metodlar, static metodlara g\u00f6re daha karma\u015f\u0131k ve daha esnek g\u00f6nderme mekanizmas\u0131na sahiptir. Bir virtual method torun s\u0131n\u0131fta yeniden tan\u0131mlanabilir fakat yine de ata s\u0131n\u0131ftan \u00e7a\u011fr\u0131l\u0131r. Virtual metodlar\u0131n adresleri derleme zaman\u0131nda tan\u0131mlanmaz; bunun yerine, metodun tan\u0131mland\u0131\u011f\u0131 nesne adresi \u00e7al\u0131\u015fma zaman\u0131nda arar.<br><br>Virtual bir metod olu\u015fturmak i\u00e7in, metod tan\u0131m\u0131na virtual direktifini ekleyin. Virtual direktifi, nesnenin virtual metod tablosunda yada VMT\u2019de(nesne tipindeki t\u00fcm virtual metodlar\u0131n adreslerini tutar) bir kay\u0131t olu\u015fturur.<br><br>Mevcut s\u0131n\u0131ftan yeni bir s\u0131n\u0131f tan\u0131mlad\u0131\u011f\u0131n\u0131zda, yeni s\u0131n\u0131f ata s\u0131n\u0131f\u0131n\u0131n VMT\u2019sindeki t\u00fcm kay\u0131tlar ile birlikte, yeni s\u0131n\u0131f\u0131n virtual metodlar\u0131n\u0131n da bulundu\u011fu kendi VMT\u2019sini al\u0131r.<br><br>&#8212; Metodlar\u0131n Ezilmesi &#8212;<br><br>Metodlar\u0131 ezmek, bu metodu ba\u015fka birisi ile de\u011fi\u015ftirmekten \u00e7ok, geni\u015fletmek yada r\u00fctu\u015f yapmak anlam\u0131na gelir.<br><br>Torun s\u0131n\u0131fta bir metod ezmek i\u00e7in, metod tan\u0131m\u0131n\u0131n sonuna override direktifi konulmal\u0131d\u0131r.<br><br>E\u011fer;<br>&#8211; Metod ata s\u0131n\u0131fta mevcut de\u011filse.<br>&#8211; Ayn\u0131 isimdeki ata metod static ise.<br>&#8211; Tan\u0131mlama \u00f6zde\u015f metodunkinden farkl\u0131 olursa(parametrelerin say\u0131s\u0131 ve tipi farkl\u0131 olursa..)<br>metod ezilmesi derleme hatas\u0131na neden olur.<br><br>A\u015fa\u011f\u0131daki kod iki temel bile\u015fenin tan\u0131m\u0131n\u0131 i\u00e7erir. \u0130lki, herbiri farkl\u0131 \u015fekilde g\u00f6nderme yapan \u00fc\u00e7 metod tan\u0131mlar. Di\u011feri ilkinden t\u00fcretilmi\u015ftir, static metodu bir ba\u015fkas\u0131 ile de\u011fi\u015ftirir ve virtual metodlar\u0131 ezer.<br><br>type<br>TFirstComponent = class(TCustomControl)<br>procedure Move; { static metod }<br>procedure Flash; virtual; { virtual metod }<br>procedure Beep; dynamic; { dynamic virtual metod }<br>end;<br><br>TSecondComponent = class(TFirstComponent)<br>procedure Move; { yeni metod tan\u0131mlar }<br>procedure Flash; override; { kal\u0131tsal metodu ezer }<br>procedure Beep; override; { kal\u0131tsal metodu ezer }<br>end;<br><br>&#8212; Dynamic Metodlar &#8212;<br><br>Dinamik metodlar, biraz farkl\u0131 g\u00f6nderme mekanizmas\u0131 olan virtual metodlard\u0131r. \u00c7\u00fcnk\u00fc dinamik metodlar\u0131n nesnenin virtual metod tablosunda kay\u0131tlar\u0131 yoktur, nesnelerin t\u00fcketti\u011fi haf\u0131zan\u0131n miktar\u0131n\u0131 d\u00fc\u015f\u00fcrebilirler. Dinamik metoda g\u00f6nderme yapmak, bilinen virtual metodlara g\u00f6nderme yapmaktan olduk\u00e7a daha yava\u015ft\u0131r. Metod s\u0131k s\u0131k \u00e7a\u011fr\u0131l\u0131yorsa yada zaman\u0131n \u00f6nemli oldu\u011fu uygulamalarda dynamic tan\u0131mlama yapmaktansa, muhtemelen virtual olarak tan\u0131mlaman\u0131z gerekir.<br><br>Nesneler dinamik metodlar\u0131n\u0131n adreslerini saklamal\u0131d\u0131r. Fakat virtual metod tablosundaki kay\u0131tlar\u0131 almak yerine, dinamik metodlar ba\u011f\u0131ms\u0131z olarak listelenir. Dinamik metod listesi, sadece belirili s\u0131n\u0131flar taraf\u0131ndan tan\u0131t\u0131lm\u0131\u015f yada ezilmi\u015f metodlar i\u00e7in kay\u0131tlar i\u00e7erirler. (Virtual metod tablosu, farkl\u0131 olarak, t\u00fcm nesnelerin kal\u0131tsal olarak gelen ve tan\u0131t\u0131lm\u0131\u015f virtual metodlar\u0131n\u0131 i\u00e7erir.) Miras kalm\u0131\u015f dinamik metodlara, s\u0131n\u0131f hiyerar\u015fi a\u011fac\u0131 do\u011frultusunda geriye do\u011fru gidilip, herbir atan\u0131n dinamik metod listesi aranarak atama yap\u0131l\u0131r.<br><br>Metodu dinamik yapmak i\u00e7in, dynamic direktifi metod tan\u0131m\u0131n\u0131n sonuna eklenir.<br><br>&#8212; Soyut S\u0131n\u0131f \u00dcyeleri &#8212;<br><br>Metod ata s\u0131n\u0131f\u0131nda abstract olarak tan\u0131mland\u0131\u011f\u0131nda, herbir torun s\u0131n\u0131fta kullanmadan \u00f6nce onu yeniden tan\u0131mlayarak ve tamamlayarak kaplaman\u0131z gerekir. Delphi soyut \u00fcyeler i\u00e7eren s\u0131n\u0131flar\u0131n \u00f6rneklerini olu\u015fturamaz. S\u0131n\u0131f\u0131n kal\u0131tsal par\u00e7alar\u0131n\u0131n kaplanmas\u0131 ile ilgili daha fazla bilgi i\u00e7in Delphi Component Writers Guide\u2019daki \u201c\u00d6zelliklerin Olu\u015fturulmas\u0131\u201d ve \u201cMetodlar\u0131n Olu\u015fturulmas\u0131\u201d k\u0131s\u0131mlar\u0131na bak\u0131n\u0131z.<br><br>&#8212; S\u0131n\u0131flar ve Pointerlar &#8212;<br><br>Her s\u0131n\u0131f(ve o nedenle her bile\u015fen de) asl\u0131nda bir pointerd\u0131r. Derleyici sizin i\u00e7in otomatik olarak s\u0131n\u0131f pointerlar\u0131 g\u00f6nderir, b\u00f6ylece \u00e7o\u011fu zaman bunun hakk\u0131nda d\u00fc\u015f\u00fcnmenize gerek kalmaz. S\u0131n\u0131f\u0131n pointerlar olarak durumu, bir s\u0131n\u0131f\u0131 parametre olarak ge\u00e7erken \u00f6nemli olmaya ba\u015flar. Genel olarak s\u0131n\u0131flar\u0131 bir referans yerine de\u011fer olarak ge\u00e7melisiniz. Sebep \u015fudur; s\u0131n\u0131flar zaten referans olan pointerlard\u0131r. S\u0131n\u0131f\u0131 referans olarak ge\u00e7mek, bir referans\u0131 referans olarak g\u00f6stermekle ayn\u0131 anlamdad\u0131r.<br><br><br>&#8212; \u00c7eviri\u2019de Kullan\u0131lan T\u00fcrk\u00e7e Terimler ve Kar\u015f\u0131l\u0131klar\u0131 &#8212;<br><br>bile\u015fen yazar\u0131 = component writer<br>bile\u015fen = component<br>uygulama programc\u0131s\u0131 = application developer<br>ata = ancestor<br>nesne Y\u00f6nelimli Programlama = Object Oriented Programming (OOP)<br>s\u0131n\u0131f = class<br>torun = descendant<br>soyut, \u00f6zet = abstract<br>\u00f6zellik = property<br>metod = method<br>tip = type<br>yeniden kullan\u0131labilirlik = reusable<br>VMT = Virtual Method Table<br>nesne = object<br>yay\u0131mlanm\u0131\u015f = published<br>t\u00fcretmek = deriving<br>aray\u00fcz = interface<br>\u00e7al\u0131\u015fma zaman\u0131 = runtime<br>ezmek = override<br>kay\u0131t = record<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>https:\/\/www.youtube.com\/watch?v=2_AzQGli-FYhttps:\/\/www.youtube.com\/watch?v=qY3YIRBOZj8https:\/\/www.youtube.com\/watch?v=XggwGh-JiJghttps:\/\/www.youtube.com\/watch?v=7PHqzsN5pjYhttps:\/\/www.youtube.com\/watch?v=k2CwrELlBOI Delphi Nesneleri&nbsp; &nbsp;Nesne y\u00f6nelimli programlama nesnelerle \u00e7al\u0131\u015fmak demektir. Bir windows program\u0131nda kar\u015f\u0131m\u0131zdaki her g\u00f6rsel eleman bir nesnedir. En ba\u015fta windows pencereleri (delphideki formlar) birer nesnedir. Formlar i\u00e7lerinde di\u011fer windows nesnelerini bar\u0131nd\u0131r\u0131rlar. &nbsp;Delphi\u2019nin \u00e7ok geni\u015f bir kontrol k\u00fct\u00fcphanesi vard\u0131r. Bu k\u00fct\u00fcphanenin elemanlar\u0131 nesne repertuar\u0131nda (component palette) grupland\u0131r\u0131lm\u0131\u015f olarak yer al\u0131r. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-510","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>DELPHI SCADA - FERSAH OTOMASYON<\/title>\n<meta name=\"description\" content=\"FERSAH Otomasyon Sistemleri end\u00fcstriyel otomasyonlar, scada ve hmi uygulamalar\u0131, plc uygulamalar\u0131, mcc panolar\u0131, Ac ve Dc motor s\u00fcr\u00fcc\u00fc uygulamalar\u0131,servo motor uygulamalar\u0131, elektromekanik uygulamalar, sistem devreye alma ve otomasyon bak\u0131m onar\u0131m hizmetlerimiz ile yolumuza devam etmekteyiz.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fersahotomasyon.com.tr\/?page_id=510\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DELPHI SCADA - FERSAH OTOMASYON\" \/>\n<meta property=\"og:description\" content=\"FERSAH Otomasyon Sistemleri end\u00fcstriyel otomasyonlar, scada ve hmi uygulamalar\u0131, plc uygulamalar\u0131, mcc panolar\u0131, Ac ve Dc motor s\u00fcr\u00fcc\u00fc uygulamalar\u0131,servo motor uygulamalar\u0131, elektromekanik uygulamalar, sistem devreye alma ve otomasyon bak\u0131m onar\u0131m hizmetlerimiz ile yolumuza devam etmekteyiz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fersahotomasyon.com.tr\/?page_id=510\" \/>\n<meta property=\"og:site_name\" content=\"FERSAH OTOMASYON\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-14T13:04:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/otomasyon_sistemleri_otomasyon_sistemi_fiyatlari_otomasyon_sistemi_yapan_firmalar_otomasyon-1-1024x561.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data1\" content=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fersahotomasyon.com.tr\/?page_id=510\",\"url\":\"https:\/\/fersahotomasyon.com.tr\/?page_id=510\",\"name\":\"DELPHI SCADA - FERSAH OTOMASYON\",\"isPartOf\":{\"@id\":\"https:\/\/fersahotomasyon.com.tr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fersahotomasyon.com.tr\/?page_id=510#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fersahotomasyon.com.tr\/?page_id=510#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/otomasyon_sistemleri_otomasyon_sistemi_fiyatlari_otomasyon_sistemi_yapan_firmalar_otomasyon-1-1024x561.jpg\",\"datePublished\":\"2022-03-09T20:18:08+00:00\",\"dateModified\":\"2025-05-14T13:04:47+00:00\",\"description\":\"FERSAH Otomasyon Sistemleri end\u00fcstriyel otomasyonlar, scada ve hmi uygulamalar\u0131, plc uygulamalar\u0131, mcc panolar\u0131, Ac ve Dc motor s\u00fcr\u00fcc\u00fc uygulamalar\u0131,servo motor uygulamalar\u0131, elektromekanik uygulamalar, sistem devreye alma ve otomasyon bak\u0131m onar\u0131m hizmetlerimiz ile yolumuza devam etmekteyiz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fersahotomasyon.com.tr\/?page_id=510#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fersahotomasyon.com.tr\/?page_id=510\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fersahotomasyon.com.tr\/?page_id=510#primaryimage\",\"url\":\"https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/otomasyon_sistemleri_otomasyon_sistemi_fiyatlari_otomasyon_sistemi_yapan_firmalar_otomasyon-1-scaled.jpg\",\"contentUrl\":\"https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/otomasyon_sistemleri_otomasyon_sistemi_fiyatlari_otomasyon_sistemi_yapan_firmalar_otomasyon-1-scaled.jpg\",\"width\":2560,\"height\":1402},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fersahotomasyon.com.tr\/?page_id=510#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fersahotomasyon.com.tr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DELPHI SCADA\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fersahotomasyon.com.tr\/#website\",\"url\":\"https:\/\/fersahotomasyon.com.tr\/\",\"name\":\"FERSAH OTOMASYON\",\"description\":\"PLC SCADA\",\"publisher\":{\"@id\":\"https:\/\/fersahotomasyon.com.tr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fersahotomasyon.com.tr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/fersahotomasyon.com.tr\/#organization\",\"name\":\"FERSAH OTOMASYON\",\"url\":\"https:\/\/fersahotomasyon.com.tr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fersahotomasyon.com.tr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/cropped-1ab5f-logo-1-2.png\",\"contentUrl\":\"https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/cropped-1ab5f-logo-1-2.png\",\"width\":50,\"height\":51,\"caption\":\"FERSAH OTOMASYON\"},\"image\":{\"@id\":\"https:\/\/fersahotomasyon.com.tr\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"DELPHI SCADA - FERSAH OTOMASYON","description":"FERSAH Otomasyon Sistemleri end\u00fcstriyel otomasyonlar, scada ve hmi uygulamalar\u0131, plc uygulamalar\u0131, mcc panolar\u0131, Ac ve Dc motor s\u00fcr\u00fcc\u00fc uygulamalar\u0131,servo motor uygulamalar\u0131, elektromekanik uygulamalar, sistem devreye alma ve otomasyon bak\u0131m onar\u0131m hizmetlerimiz ile yolumuza devam etmekteyiz.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fersahotomasyon.com.tr\/?page_id=510","og_locale":"tr_TR","og_type":"article","og_title":"DELPHI SCADA - FERSAH OTOMASYON","og_description":"FERSAH Otomasyon Sistemleri end\u00fcstriyel otomasyonlar, scada ve hmi uygulamalar\u0131, plc uygulamalar\u0131, mcc panolar\u0131, Ac ve Dc motor s\u00fcr\u00fcc\u00fc uygulamalar\u0131,servo motor uygulamalar\u0131, elektromekanik uygulamalar, sistem devreye alma ve otomasyon bak\u0131m onar\u0131m hizmetlerimiz ile yolumuza devam etmekteyiz.","og_url":"https:\/\/fersahotomasyon.com.tr\/?page_id=510","og_site_name":"FERSAH OTOMASYON","article_modified_time":"2025-05-14T13:04:47+00:00","og_image":[{"url":"https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/otomasyon_sistemleri_otomasyon_sistemi_fiyatlari_otomasyon_sistemi_yapan_firmalar_otomasyon-1-1024x561.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fersahotomasyon.com.tr\/?page_id=510","url":"https:\/\/fersahotomasyon.com.tr\/?page_id=510","name":"DELPHI SCADA - FERSAH OTOMASYON","isPartOf":{"@id":"https:\/\/fersahotomasyon.com.tr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fersahotomasyon.com.tr\/?page_id=510#primaryimage"},"image":{"@id":"https:\/\/fersahotomasyon.com.tr\/?page_id=510#primaryimage"},"thumbnailUrl":"https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/otomasyon_sistemleri_otomasyon_sistemi_fiyatlari_otomasyon_sistemi_yapan_firmalar_otomasyon-1-1024x561.jpg","datePublished":"2022-03-09T20:18:08+00:00","dateModified":"2025-05-14T13:04:47+00:00","description":"FERSAH Otomasyon Sistemleri end\u00fcstriyel otomasyonlar, scada ve hmi uygulamalar\u0131, plc uygulamalar\u0131, mcc panolar\u0131, Ac ve Dc motor s\u00fcr\u00fcc\u00fc uygulamalar\u0131,servo motor uygulamalar\u0131, elektromekanik uygulamalar, sistem devreye alma ve otomasyon bak\u0131m onar\u0131m hizmetlerimiz ile yolumuza devam etmekteyiz.","breadcrumb":{"@id":"https:\/\/fersahotomasyon.com.tr\/?page_id=510#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fersahotomasyon.com.tr\/?page_id=510"]}]},{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fersahotomasyon.com.tr\/?page_id=510#primaryimage","url":"https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/otomasyon_sistemleri_otomasyon_sistemi_fiyatlari_otomasyon_sistemi_yapan_firmalar_otomasyon-1-scaled.jpg","contentUrl":"https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/otomasyon_sistemleri_otomasyon_sistemi_fiyatlari_otomasyon_sistemi_yapan_firmalar_otomasyon-1-scaled.jpg","width":2560,"height":1402},{"@type":"BreadcrumbList","@id":"https:\/\/fersahotomasyon.com.tr\/?page_id=510#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fersahotomasyon.com.tr\/"},{"@type":"ListItem","position":2,"name":"DELPHI SCADA"}]},{"@type":"WebSite","@id":"https:\/\/fersahotomasyon.com.tr\/#website","url":"https:\/\/fersahotomasyon.com.tr\/","name":"FERSAH OTOMASYON","description":"PLC SCADA","publisher":{"@id":"https:\/\/fersahotomasyon.com.tr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fersahotomasyon.com.tr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":"Organization","@id":"https:\/\/fersahotomasyon.com.tr\/#organization","name":"FERSAH OTOMASYON","url":"https:\/\/fersahotomasyon.com.tr\/","logo":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fersahotomasyon.com.tr\/#\/schema\/logo\/image\/","url":"https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/cropped-1ab5f-logo-1-2.png","contentUrl":"https:\/\/fersahotomasyon.com.tr\/wp-content\/uploads\/2025\/05\/cropped-1ab5f-logo-1-2.png","width":50,"height":51,"caption":"FERSAH OTOMASYON"},"image":{"@id":"https:\/\/fersahotomasyon.com.tr\/#\/schema\/logo\/image\/"}}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fersahotomasyon.com.tr\/index.php?rest_route=\/wp\/v2\/pages\/510","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fersahotomasyon.com.tr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fersahotomasyon.com.tr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fersahotomasyon.com.tr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fersahotomasyon.com.tr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=510"}],"version-history":[{"count":6,"href":"https:\/\/fersahotomasyon.com.tr\/index.php?rest_route=\/wp\/v2\/pages\/510\/revisions"}],"predecessor-version":[{"id":635,"href":"https:\/\/fersahotomasyon.com.tr\/index.php?rest_route=\/wp\/v2\/pages\/510\/revisions\/635"}],"wp:attachment":[{"href":"https:\/\/fersahotomasyon.com.tr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}