delphi ekitap.pdf - 2020-05-09; 13:54:47; Bu kopya yalnızca...

  • No School
  • AA 1
  • erolaltekin
  • 857

This preview shows page 1 out of 857 pages.

Unformatted text preview: 2020-05-09; 13:54:47; Bu kopya yalnızca erol altekin adına lisanslıdır. Lisans sahibi, yayıncı (Torkum Bilişim A.Ş.)'nin resmi yazılı izni olmadan kitabın tamamını veya bir bölümünü çoğaltmamayı, Internet üzerinden yayınlamamayı, satmamayı, başka bir kişiye/kuruma aktarmamayı kabul eder. Tüm Platformlar için Hızlı Uygulama Geliştirme Windows, Mac OS X, Linux, iOS ve Android Fesih ARSLAN Ocak 2019 2020-05-09; 13:54:47; Bu kopya yalnızca erol altekin adına lisanslıdır. Lisans sahibi, yayıncı (Torkum Bilişim A.Ş.)'nin resmi yazılı izni olmadan kitabın tamamını veya bir bölümünü çoğaltmamayı, Internet üzerinden yayınlamamayı, satmamayı, başka bir kişiye/kuruma aktarmamayı kabul eder. Tüm Platformlar İçin Hızlı Uygulama Geliştirme Fesih ARSLAN Birinci Baskı ISBN Yayıncılık Sertifika No Kapak Tasarım Sayfa Düzeni Satış Sorumlusu Baskı Tel Matbaa Sertifika No Ocak 2019 978-605-80936-1-4 42989 Nihat DOMUR Uğur PARLAYAN Torkum Bilişim Anonim Şirketi İşkur Matbaacılık Sanayi ve Ticaret Limited Şirketi Ağaç İşleri Sanayi Sitesi 1370. Sokak No:5 İvedik Organize / Ankara 0312 394 62 30 19371 Kitabın bütün yayın hakları Torkum Bilişim Anonim Şirketi’ne aittir. İlgili yönetim kurulumuzun yazılı izni olmaksızın, kısmen veya tamamen alıntı yapılamaz, hiçbir şekilde kopya edilemez, çoğaltılamaz ve yayımlanamaz. ANKARA Mutlukent Mh. 2027. Sk. No:2 Beysukent Çankaya Ankara 06800 T:+90 312 266 06 06 F:+90 312 266 06 07 İSTANBUL Kanyon Ofis Binası Kat:6 Büyükdere Cad. No:185 Levent İstanbul 34394 +90 212 319 77 22 +90 212 319 76 00 2020-05-09; 13:54:47; Bu kopya yalnızca erol altekin adına lisanslıdır. Lisans sahibi, yayıncı (Torkum Bilişim A.Ş.)'nin resmi yazılı izni olmadan kitabın tamamını veya bir bölümünü çoğaltmamayı, Internet üzerinden yayınlamamayı, satmamayı, başka bir kişiye/kuruma aktarmamayı kabul eder. Bu kitabı, yazım sürecinde desteğini esirgemeyen eşime ithaf ediyorum. 2020-05-09; 13:54:47; Bu kopya yalnızca erol altekin adına lisanslıdır. Lisans sahibi, yayıncı (Torkum Bilişim A.Ş.)'nin resmi yazılı izni olmadan kitabın tamamını veya bir bölümünü çoğaltmamayı, Internet üzerinden yayınlamamayı, satmamayı, başka bir kişiye/kuruma aktarmamayı kabul eder. Teşekkür Bu kitabın yazım sürecinde, bana destek olan ve sabır gösteren eşime ve çocuklarıma teşekkür ederim. Kitabın yayım sürecinde maddi ve manevi desteklerini esirgemeyen BTG (Bilgi ve Teknoloji Grubu) kurucu ortaklarından Yücel TEPEKÖY ve Sadi TEPEKÖY’e, “Veri Tipleri, Kapladıkları Alanlar ve Pointer’larla İlişkileri” bölümünü yazan, platform yöneticilerimizden Tuğrul HELVACI’ya, tasarım ve sayfa düzeni işlemlerinde yardımcı olan Uğur PARLAYAN’a, kapak tasarımı için Nihat DOMUR’a, içerik düzeltmeleri için değerli zamanını ayıran Erdoğan BAKIR’a, ve adlarını burada sayamadığım tüm dostlarıma teşekkür ederim. Fesih ARSLAN 2020-05-09; 13:54:47; Bu kopya yalnızca erol altekin adına lisanslıdır. Lisans sahibi, yayıncı (Torkum Bilişim A.Ş.)'nin resmi yazılı izni olmadan kitabın tamamını veya bir bölümünü çoğaltmamayı, Internet üzerinden yayınlamamayı, satmamayı, başka bir kişiye/kuruma aktarmamayı kabul eder. Kitap Kimlere Hitap Ediyor Elinizdeki bu kitap, tek bir kaynak kod ile Windows, OS X, Android, iOS veya Linux sunucu uygulamaları geliştirmek ve bu alanlarda uzmanlaşmak isteyen herkese hitap ediyor. Kitabımız başlangıç seviyesindeki yazılım severlere hitap etmesine rağmen, yeni bir teknoloji olan Multi-Platform mimarisini öğrenmek ve uzmanlaşmak isteyen tüm geliştiriciler için ise bir kılavuz niteliği taşımaktadır. Kitap İçeriği, Kaynak Kodlar Günümüzde birçok yazılım dili veya editörü, yalnızca tek bir hedef platform üzerinde uygulama geliştirmeye müsaittir. Bu kitapta ise “Tek bir kaynak kod ile tüm hedef platformlarda uygulama geliştirmenin” temelleri öğretilmektedir. Bu kapsamda MultiPlatform (masaüstü, mobil ve benzeri tüm ARM cihazlar) uygulama geliştirme prensipleri ve hedef platform hassasiyetleri ilgili konu başlıkları altında detaylı olarak anlatılmıştır. Anlatımları güçlendirme ve konuları daha iyi kavrayabilmek için birçok yerde sıkça ekran görüntüsü kullanılmış ve farklı örnek uygulamalarla desteklenmiştir. Kitapta anlatılan uygulama örneklerine, web sayfamızdan ulaşabilirsiniz. Kitapta Kullanılan Terimler ve Kısaltmalar RAD: (Rapid Application Development) Delphi yazılım geliştirme ortamının sembol sloganı haline gelmiş, hızlı uygulama geliştirme manası taşmaktadır. VCL: (Visual Component Library) Delphi görsel bileşen setlerini ifade etmektedir. Daha çok Windows platformuna özgü geliştirilen uygulama tipini ifade etmektedir. FMX: (FireMonkey) Multi-platform mimarisini ifade etmektedir. İçerik menüsü: Sağ tuş ile ortaya çıkarılan menüdür. IDE: (Integrated Development Environment) Geliştiricinin hızlı ve kolay bir şekilde yazılım geliştirebilmesini amaçlayan ve bu süreçleri eklentiler ile organize edebilen tümleşik geliştirme ortamını ve program arayüzünü ifade etmektedir. $(BDS): Delphi kurulum klasörünü ifade eden ortam değişkenidir. Örneğin C:\Program Files (x86)\Embarcadero\Studio\19.0 SDK: (Software Development Kit) Donanım ve yazılım geliştiricileri için sunulan ve içerisinde birçok hazır metod barındıran yazılım geliştirme araçlarının tümüdür. NDK: (Android Native Development Kit) Android platformuna özgü doğal bileşen kütüphanesini ifade etmektedir. API: (Application Programming Interface) Birçok kaynakta Uygulama Programlama Arayüzü olarak nitelendirilir. Bir uygulamaya ait fonksiyonların başka uygulamalar tarafından kullanılabilmesi için paylaşılan ortak arayüzdür. PAServer: (Platform Assistant Server) Multi-platform yazılım geliştirmek için kullanılan bir ara yazılımdır. 2020-05-09; 13:54:47; Bu kopya yalnızca erol altekin adına lisanslıdır. Lisans sahibi, yayıncı (Torkum Bilişim A.Ş.)'nin resmi yazılı izni olmadan kitabın tamamını veya bir bölümünü çoğaltmamayı, Internet üzerinden yayınlamamayı, satmamayı, başka bir kişiye/kuruma aktarmamayı kabul eder. AdMob: Mobil reklamcılık sektöründe faaliyet gösteren Omar Hamoui tarafından kurulmuş Google’a bağlı bir şirkettir. AdMob sözcüğü, mobilde reklamcılık anlamındaki "Advertising on mobile"in birleştirilerek kısaltılmasından gelmektedir. UI: (User Interface) Son kullanıcının erişebileceği tüm görülebilen bileşenleri ifade eder. GUI: (Graphical User Interface) UI gibi son kullanıcının erişebileceği daha çok görülebilen vektörel ve grafiksel bileşenleri ifade eder. GPU: (Graphichs Processing Unit) Grafiksel işlemlerin yorumlandığı merkezi işlem birimidir. SOA: Sunucu – istemci veya benzeri birçok ara yazılım veya katmanların yer aldığı servis odaklı mimarilerdir. SOAP: (Simple Object Access Protocol) Sunucu - İstemci prensibi ile çalışan bir web servis protokolüdür. RDBMS : (Relational Database Management System) İlişkisel veri tabanı yönetim sistemini ifade eder. Veri tabanı üzerindeki tüm bileşen ve objeler arasında bir ilişkinin olduğu sistemlerdir. Oracle, MS-SQL Server, Firebird, PostgreSQL ve daha birçok veri tabanı bunlara örnek olarak verilebilir. DBA: DataBese Administrator olarak nitelendirilen veri tabanı uzman yöneticileridir. 2020-05-09; 13:54:47; Bu kopya yalnızca erol altekin adına lisanslıdır. Lisans sahibi, yayıncı (Torkum Bilişim A.Ş.)'nin resmi yazılı izni olmadan kitabın tamamını veya bir bölümünü çoğaltmamayı, Internet üzerinden yayınlamamayı, satmamayı, başka bir kişiye/kuruma aktarmamayı kabul eder. Yazar Hakkında Fesih ARSLAN, ilk, orta, lise ve üniversite eğitimlerini Erzurum’da tamamlamış, Lise öğrenimini Erzurum Atatürk Endüstri Meslek Lisesi’nde Teknik Lise Bilgisayar Bölümü’nden, üniversite öğrenimini ise Atatürk Üniversitesi Ziraat Fakültesinden mezun olarak tamamlamıştır. Yazılım dilinin temellerini 1993-1996 yılları arasında Turbo Pascal ile atmış olup, 2002 yılından bugüne kadar Emniyet Mensubu olarak görevine devam etmektedir. Delphi yazılım dili ile aktif olarak uygulamalar geliştirmekte olup, yazdığı proje ve makalelerini, kurucusu olduğu, platformunda yayınlamaktadır. Yazılım eğitmeni olan yazarımız, daha önce birçok defa “Temel Seviye Yazılım ve Algoritma” kursu vermiştir. Ayrıca Siber ve Adli Bilişim Suçları alanında birçok eğitim ve kurs almış ve almaya devam etmektedir. Çalışmış olduğu bazı projeleri; kurumsal sorgulama uygulamaları, Forensic uygulamaları, RF teknolojileri ile uzaktan kontrol sistemleri (Erken Uyarı Sistemleri ve Merkezi Isı Yönetim Sistemleri gibi), beacon teknolojileri ile mikro lokasyon mimarileri, personel devam kontrol ve geçiş noktalarının yönetimi gibi daha birçok IoT projelerde proje yöneticisi veya geliştirici olarak görev almıştır. Fesih ARSLAN 2020-05-09; 13:54:47; Bu kopya yalnızca erol altekin adına lisanslıdır. Lisans sahibi, yayıncı (Torkum Bilişim A.Ş.)'nin resmi yazılı izni olmadan kitabın tamamını veya bir bölümünü çoğaltmamayı, Internet üzerinden yayınlamamayı, satmamayı, başka bir kişiye/kuruma aktarmamayı kabul eder. Önsöz Yazılım teknolojilerinin gelmiş olduğu son noktayı ve bunların önemini daha iyi anlama adına; Delphi ve Object Pascal ile yıllardır uygulama geliştiren, dağıtımını yapan çok değerli abi ve hocalarımın ve Embarcadero Delphi geliştiricilerinin kaleminden birer önsözün, bu kitapta yer almasının uygun olacağı kanaatindeyim. Tuğrul HELVACI Öncelikle, sevgili arkadaşım Fesih ARSLAN’a bana vermiş olduğu bu imkândan ötürü ve daha da önemlisi Delphi camiasına yaptığı ve yapmaya devam ettiği tüm emeklerinden ötürü çok teşekkür ederim. Delphi; 1995 yılında Turbo Pascal ürününün devamı olarak üretilmiş, Object Pascal tabanlı bir dil ve geliştirme ortamıdır. Delphi; tamamiyle güvenli ve güçlü bir tip sistemi ile donatılmış, olay güdümlü, nesneye yönelik programlamanın tüm özelliklerini kullanmanıza izin veren, yazdığınız uygulamaların bir başka kütüphaneye yada harici kaynağa bağımlı olmadan tamamen native çalışabilmesine olanak tanıyan, içinde modern programlama dillerinin olmazsa olmazlarını barındıran (anonymous methods, generics, operator overloading, class & record helpers, abstract, sealed, nested classes vb..) ve yazdığınız kodu birden fazla hedef platform için (Windows, Linux, Mac OS, Android, IOS) tek bir hareket ile derleyebileceğiniz tutarlı, hızlı bir programlama ortamıdır. Neden Delphi? Bu sorunun yanıtı kişiden kişiye değişir elbette. Her insan için, dili kendisine sevdiren unsurlar farklı farklı olabilir. Delphi’nin mükemmel olduğunu iddia edebilmem için, piyasadaki tüm dilleri biliyor ve kullanıyor olmalıyım. Ancak maalesef bu mümkün değil. Lâkin yeterince dil bilen ve gerektiği zaman kullanabilen birisi olarak, Delphi’de kod yazarken her daim kendimi evimde gibi hissettiğimi söyleyebilirim. PEKİ BEN DELPHI’Yİ NEDEN SEVİYORUM? RAD (Rapid Application Development-Hızlı uygulama geliştirme) konseptinin ilk sahibi ve başarılı uygulayıcısı olması münasebeti ile. Object Pascal’ın sade ve anlaşılır dil yapısı nedeni ile. Delphi ile ilgili çok profesyonel ve tatmin edici component’lerin mevcudiyeti ve çok tecrübeli bir topluluğa sahip olması nedeni ile. Dilin, programcıları karmaşadan uzak tutmak için uyguladığı mükemmel tasarımı nedeni ile. İstediğim an Delphi’nin her türlü kütüphanesine bakıp kaynak kodlarını inceleyebildiğim için. (Compiler’ın kodu hariç, hemen her şey açık kaynak) Düşük seviye programlamaya ihtiyaç duyduğum an, hız lazım olduğunda, projelerimin içinde Assembly dilini kullanabildiğim için. Üretilen tüm çıktıların native olmasından, dolayısı ile uygulamanın çalışabilmesi için harici hiçbir kaynağa ihtiyaç duymamasından ötürü. (Örneğin .Net Framework’ün varlığına ya da harici DLL’lere ihtiyacı yoktur) 2020-05-09; 13:54:47; Bu kopya yalnızca erol altekin adına lisanslıdır. Lisans sahibi, yayıncı (Torkum Bilişim A.Ş.)'nin resmi yazılı izni olmadan kitabın tamamını veya bir bölümünü çoğaltmamayı, Internet üzerinden yayınlamamayı, satmamayı, başka bir kişiye/kuruma aktarmamayı kabul eder. Çok hızlı derleyebildiği için. İşletim sistemi API’lerinin çok büyük çoğunluğunun tanımlarına sahip olduğu ve ilgili API’leri kullanmak için ekstra tanımlar yapmaya gerek olmadığı için. Pointer’ların gücünü kullanmama izin verdiği için. Windows Servis Uygulamaları, Konsol Uygulamaları, Web Serverlar, Web Servisler, ActiveX’ler, COM tabanlı uygulamalar, 3 ve daha fazla katmanlı uygulamalar, REST servis uygulamaları, GUI uygulamaları, DLL’ler, Control Panel Uygulamaları, Android Servisleri vb. birçok uygulama türünü çok kolay ve hızlıca geliştirebilmeye imkân tanıdığı için. Kodu bir kere yazıp, aynı kodu; Windows, Linux (şu an sadece konsol ve servis desteği), Mac OS, Android ve IOS için tek bir hamlede derleyebilmenin verdiği haz ve kazandırdığı zaman için. Bu ve buna benzer maddeler çoğaltılabilir. Kimi programcılar için bu maddeler arasında “olmazsa olmaz” lar vardır; kimileri için de “eh işte” ler. Elbette tercih sizlerin. Ben bir dil fanatiği değilim asla. Gerektiğinde gereken dili ve platformu kullanmayı severim. Bu nedenle birçok dil ve platform kullanmışlığım vardır. Ama samimi olarak şunu söyleyebilirim ki; Delphi’nin kapsama alanının dışına çıktığımda, Delphi’yi ve bana verdiği nimetlerin değerini daha çok anlıyor ve onu özlüyorum. Evet dediğim gibi bir fanatik değilim belki ama kısaca bir Delphi aşığı sayılabilirim. Size aşığı olduğum dili çok kısaca özetleyebilirim sadece, fazlası için yerim yok. Umut ederim ki, sizler de inceleyince sevecek ve belki de âşık olacaksınız ben ve benim gibi binlerce programcı gibi. Sizlere bu satırlar vasıtası ile söyleyebileceğim son sözüm, her zaman sistem kaynaklarına yakın olan programlama dilleri ile ilgilenmeye gayret edin. Düşük seviye programcılık, ülkemizin geleceği için çok önemli. Evet, hayatımızı idame ettirebilmek için düşük seviye diller çok da önemli değil gibi görünüyor. Ancak devletler için çok büyük bir öneme sahip. Bir gün, sizlerin arasından birisinin ilk Türk işletim sistemini yazdığını, savunma sanayimiz için düşük seviye yazılımlara imza attığını, kendi firewall’umuzu, kendi virüs tarayıcımızı yazdığını görmek ben ve benim gibi milyonlarca insan için bir gurur vesilesi olacaktır. Programlama hayatınız başarı, eğlence, tatmin ve öğrenmeye açlık ile geçsin. Yolunuz aydınlık olsun. Tuğrul HELVACI Yazılım Uzmanı 2020-05-09; 13:54:47; Bu kopya yalnızca erol altekin adına lisanslıdır. Lisans sahibi, yayıncı (Torkum Bilişim A.Ş.)'nin resmi yazılı izni olmadan kitabın tamamını veya bir bölümünü çoğaltmamayı, Internet üzerinden yayınlamamayı, satmamayı, başka bir kişiye/kuruma aktarmamayı kabul eder. Yücel TEPEKÖY 2020-05-09; 13:54:47; Bu kopya yalnızca erol altekin adına lisanslıdır. Lisans sahibi, yayıncı (Torkum Bilişim A.Ş.)'nin resmi yazılı izni olmadan kitabın tamamını veya bir bölümünü çoğaltmamayı, Internet üzerinden yayınlamamayı, satmamayı, başka bir kişiye/kuruma aktarmamayı kabul eder. Since over 20 years ago, Delphi has been a fantastic tool for Windows developers, who wanted to have the power of a modern object-programming language combined with the fast development offer by RAD visual programming and an integrated IDE. Over the last few years, Delphi has gone way beyond its Windows focus: while extended to remain the best tool for WIndows 10 development, it has added support for mobile platforms (both iOS and Android), cross-platform client development, and also server side development on both Windows and Linux. The product today offers a wide range of capabilities, supports 5 operating systems and ships with 8 different compilers for an extended and modern language. Marco Cantu Delphi, 20 yılı aşkın bir süredir, görsel programlama ve entegre bir IDE tarafından sunulan hızlı geliştirme ortamı ile birlikte modern bir nesneprogramlama dilinin gücüne sahip olmak isteyen Windows geliştiricileri için harika bir araç olmuştur. Delphi, son yıllarda Windows odaklı yazılım geliştirmenin ötesine geçmiştir: Windows 10 yazılım geliştirme için en iyi araç olma statüsünü korurken, mobil platformlar (hem iOS hem Android), çapraz platform istemci uygulamaları geliştirme, ayrıca Windows ve Linux için sunucu geliştirme desteği eklenmiştir. Ürün şu anda çeşitli özellikler sunmaktadır; genişletilmiş ve modern bir dil için 8 farklı derleyici ve 5 işletim sistemini desteklemektedir. While this is great, it does pose a challenge for both new developers approaching it and old developers who have not followed the recent extensions, the support for new libraries and new platforms. Tackling a complex development tool in an increasing diverse scenario is a challenge that becomes much easier with great resources such as this book Fesih Arslan has written to help master today’s Delphi -- unlike my own old Mastering books written over 10 years ago and focused on yesterday’s product. Ürün bu aşamaları kaydederken hem arkasından gelen yeni geliştiricilere hem de yeni kütüphaneler ve yeni platformlar için son zamanlarda ortaya çıkan eklentileri takip etmeyen eski geliştiricilere meydan okuyor. Giderek çeşitlenen bir durumda karmaşık bir geliştirme aracını çözmek, benim 10 yılı aşkın süre önce yazdığım ve geçmişte kalan ürüne odaklanan uzmanlaşma kitaplarımın aksine, Fesih Arslan'ın şu anki Delphi'de uzmanlaşmaya yardımcı olmak için yazdığı bu kitap gibi muazzam kaynaklarla kolaylaşan bir zorluktur. The book does a great job putting at the Delphi and FireMonkey mobile development at the center of the focus. It does this while covering all of the elements of Delphi development, the IDE and the visual designers, the code editor, the structure of a Delphi project, and in general on multi-device development. Bu kitap, Delphi ve FireMonkey mobil uygulama geliştirmeye odaklanması yönüyle harika bir iş yapar. Kitap; Delphi ile uygulama geliştirmenin tüm esaslarına, yazılım geliştirme ortamına (IDE) ve görsel tasarlayıcılara, kod editörüne, Delphi proje yapısına ve genel olarak çoklu cihaz geliştirmeye değiniyor. 2020-05-09; 13:54:47; Bu kopya yalnızca erol altekin adına lisanslıdır. Lisans sahibi, yayıncı (Torkum Bilişim A.Ş.)'nin resmi yazılı izni olmadan kitabın tamamını veya bir bölümünü çoğaltmamayı, Internet üzerinden yayınlamamayı, satmamayı, başka bir kişiye/kuruma aktarmamayı kabul eder. The real focus is on FireMonkey mobile components, for example going in depth on the fundamental ListView controls, but also covering components like address book and map, device sensors and GPS, FMX effects, and the notification system, including the fairly complex push notification mechanism. There is also a nice section on data access covering SQLite and FireDAC, and a final chapter on Linux, helping creating the backend for your mobile applications. Kitapta asıl olarak FireMonkey mobil uygulama bileşenlerine odaklanmıştır, örneğin temel ListView bileşeni hakkında detaylı bilgiler yer almakta ayrıca, adres defteri ve harita, cihaz sensörleri ve GPS, FMX efektleri ve bildirim sistemleri ile oldukça karmaşık bir anlık bildirim mekanizması gibi hususlarda da bilgi verilmektedir. Kitapta SQLite ve FireDAC'e ilişkin veri erişimi hakkında da güzel bir bölüm bulunmaktadır. Kitabın son bölümü ise Linux hakkındadır; mobil uygulamalarınız için arka uç oluşturmaya yardımcı olacaktır. A book with this breadth of coverage is certainly going to help you understand where Delphi is today and the power it brings to mobile, multi-device and multitier development. The IT world is changing fast and mobile platforms offers a completely new opportunity and challenge, with the ability to deploy applications to millions of users in a seamless way. Böylesine kapsamlı bir kitap Delphi'nin bugünkü durumunu ve mobil, çoklu cihaz ve çok katmanlı uygulama geliştirme ortamının sağladığı yararı anlamanıza yardımcı olacaktır. BT dünyası hızla değişiyor ve mobil platformlar, sorunsuz bir şekilde milyonlarca kullanıcıya uygulamalar sunarak tamamen yeni fırsatlar sağlıyor ve adeta meydan okuyor. Delphi is ready to take the challenge of today’s development world, are you also ready? If not this book is going to help you get there and be ready for the future. Have a great reading. Delphi, Piacenza, Italy, July 2nd 201...
View Full Document

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture