Dienstag, 11. September 2018

Neden Delphi ? 2018


unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs; { Kullanılan komut kütüphaneleri }
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1; { Bu Kısımda Değişken (Variable) Tanımlamaları Yapılmaktadır. }
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
{ Burası Programın Ana Kısmı.(Windows Formu) }
end;
end.
Peki Neden Delphi ?
1 - Kolay Syntax(Komut Dizilimi)
Yukarıda da bahsettiğim gibi delphi gibi kolay syntax'e sahip bir dil yoktur.Ingilizce bilmeniz delphi için
çok önemli bir yapıtaşıdır.
2 - Nesneye Yönelik.
Kendi veri tipinizi ve özel fonksiyon ve prosedürlerinizi rahatça tanımlamanızı ve tekrar kullanabilmenizi sağlar.
3 - Multi - Platform
Bugün delphi Windows başta olmak üzere Linux ve Machintosh platformlarında yazılım geliştirmeye olanak
tanıyan yegane dildir.
4 - Komponent Desteği
Bugün web üzerinde birçok delphi komponenti vardır ve tümü çok hızlı ve esnek programlama yapmanızı
sağlar. Ve açık kaynak dünyasına bir anlamda öncülük etmektedir.
5 - Seyive Sınırlaması Yok
Delphi içinde assembler bütünlüğü programcıya oldukça esnek bir alan yaratmakta ve yüksek seviye
dillerin sistem bağımlılığından yine yüksek seviye bir dil olarak çıkmasını sağlamaktadır.

Delphi'de ShellExecute

İşlevi kullanabilmek için önce ShellApi'yi sizin kullanımınıza eklemelisiniz;
ShellApi nasıl kullanır ;
İşte işlevin bazı sık kullanılan örnekleri şunlardır:
Bir yürütülebilir dosyayı çalıştırın ve gösterin:


dosyaadı : = 'c: \ program.exe' ;
ShellExecute ( işlemek , 'open' , PChar ( dosya adı ) , '' , '' , SW_SHOWNORMAL ) ;
Bir yürütülebilir dosyayı çalıştırın ve en aza indirgeyin:

dosyaadı : = 'c: \ program.exe' ;
ShellExecute ( işlemek , 'open' , PChar ( dosya adı ) , '' , '' , SW_MINIMIZE ) ;
Bir yürütülebilir dosyayı çalıştırın ve maksimize edin:

dosyaadı : = 'c: \ program.exe' ;
ShellExecute ( işlemek , 'open' , PChar ( dosya adı ) , '' , '' , SW_MAXIMIZE ) ;
Bir yürütülebilir dosyayı çalıştırın ve gizleyin:

dosyaadı : = 'c: \ program.exe' ;
ShellExecute ( işlemek , 'open' , PChar ( dosya adı ) , '' , '' , SW_HIDE ) ;
Parametrelerle yürütülebilir bir dosyayı çalıştırın:

dosyaadı : = 'c: \ program.exe' ;
parametreler : = '-c-i -v' ;
ShellExecute ( tanıtıcı , 'açık' , PChar ( dosya adı ) , PChar ( parametreler ) , '' , SW_SHOWNORMAL ) ;
ShellExecute işlevinden Dönüş Değerleri.
ShellExecute'un dönüş değeri 32'den büyükse, uygulama başarıyla yürütüldü.
33'den küçükse, işlev başarısız oldu.

ShellExecute olası dönüş değerlerinin tam listesi:
0 = İşletim sistemi bellek veya kaynak yetersiz.
2 = Belirtilen dosya bulunamadı
3 = Belirtilen yol bulunamadı.
5 = Sadece Windows 95: İşletim sistemi belirtilen dosyaya erişimi reddetti
8 = Sadece Windows 95: İşlemi tamamlamak için yeterli bellek yoktu.
10 = Yanlış Windows sürümü
11 = .EXE dosyası geçersiz (Win32 dışı .EXE veya .EXE görüntüsündeki hata)
12 = Uygulama farklı bir işletim sistemi için tasarlanmıştır
13 = Uygulama MS-DOS 4.0 için tasarlanmıştır
15 = Gerçek mod programı yüklemeyi denemek
16 = Okunmamış veri segmentleriyle bir uygulamanın ikinci bir örneğini yüklemeyi deneyin.
19 = Sıkıştırılmış bir uygulama dosyasını yüklemeyi deneyin.
20 = Dinamik bağlantı kitaplığı (DLL) dosya hatası.
26 = Bir paylaşım ihlali oluştu.
27 = Dosya adı ilişkilendirmesi eksik veya geçersiz.
28 = İstek zaman aşımına uğradığı için DDE işlemi tamamlanamadı.
29 = DDE işlemi başarısız oldu.
30 = DDE işlemleri diğer DDE işlemleri gerçekleştirildiğinden tamamlanamadı.
31 = Verilen dosya adı uzantısıyla ilişkili bir uygulama yok.

Delphi Tarihi ?

Delphi programlama dilinin, temeli Pascal dilidir. Özellikle nesne yönelimli programlama anlayışıyla yapılandırılmış Turbo Pascal dilinin görsel sürümü denilebilir.
Nesne, sınıf, kalıtım, fonksiyon aşırıyükleme (overloading) gibi temel NYP tekniklerini ve daha fazlasını içeren ve C++ den aşağı kalmayan güçlü ve esnek bir programlama dilidir.
Borland tarafından geliştirilmektedir. Win32 ve .NET platformları üzerinde yazılım geliştirmeye olanak sağlar.
GNU/Linux platformu üzerinde geliştirme imkanı sağlayan Kylix isimli bir sürümü de bulunmaktadır.
Delphi programlama dili nesne yönelimli bir dil olduğu için eklenen bütün nesnelerin (formlar da dahil) kodlarını oluşturur. Bu kodları "Unit" ler içerisinde barındırır.
Aşağıda örnek bir Delphi kaynak kodu görülmektedir. Örnekte form üzerindeki button'a tıklandığında 'Merhaba Dünya' mesajı verir. Delphi tarafından oluşturulan koda programcının eklediği satır açıklama ile belirtilmiştir.

Kod:
 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class (TForm) Button1: TButton; procedure Button1Click (Sender: TObject); private  public  end; var Form1: TForm1; implementation  procedure TForm1.Button1Click (Sender: TObject); begin ShowMessage ('Merhaba Dünya');  end; end.
Delphi nin ilk sürümü 14 Şubat 1995 de satışa sunuldu. Sadece 16 Bit uygulamalar için kaynak kodları içeriyordu. Bileşenleri son derece kısıtlıydı.

Delphi 2, Mart 1996'da satışa sunuldu. 32 bit uygulamaların geliştirilebildiği ilk sürümdür. Önceki sürüm olan Delphi 1'de birlikte veriliyordu. Delphi 2, 16 bit'ten 32 bit'e geçişte önemli ölçüte geliştirildi. Windows 95 stilinde modern bileşenler içeriyordu. Ayrıca çok daha fazla hafıza kullanımına izin veriyordu. Daha önce tüm veritipleri için 64 KByte ile sınırlıydı. Karakter dizileri (String) 255 karakter olabiliyordu. Delphi 2 ile 2 GByte'a kadar kullanım imkanı buldu.
Delphi 3, Mayıs 1997 de satışa sunuldu. Önceki sürüme göre en önemli fark çok sayıda hatanın düzeltilmesi ve internet uygulamaları ile ilgili bileşenlerin eklenmesi olmuştur.
Delphi 4 (Kodadı: Allegro) === Delphi 4, Temmuz 1998 de satışa sunuldu. Dinamik dizi kullanımını sağladı.
Delphi 5 (Kodadı: Argus) === Delphi 5, Ağustos 1999 da satışa sunuldu. Bu sürüm ile ADO ile veritabanı erişimi başladı. Profesyonel sürümde ise bu özellik ADO Express olarak satın alınması gerekiyodu, ama "ABB expres" olarak alındı
Delphi 6, Mayıs 2001 de satışa sunuldu. Delphi 6 ile birlikte gelen Modelmaker modelleme aracı ile UML-Modellerinden Delphi kodları oluşturulabiliyordu. Modelmaker nesne tabanlı sistemleri modelleyen standart bir dil olan Unified Modeling Language UML ile Diagram oluşturmayı sağlıyor. Böylece kod yazımı en aza indiriliyordu.
Delphi 7 (Kodadı: Aurora) En stabil IDE'ye ve en az hataya sahip olan Delphi sürümüdür. Uyumsuzluk sorunlarının aşılması için Microsoft Tarafından Vista uyumluluk paketi hazırlanan tek Delphi sürümüdür.
Delphi 8, Aralık 2003'de satışa sunuldu. Bu sürüm ile sadece .NET 1.0 uygulamaları geliştirilebiliyordu. ECO gibi çok güçlü bir teknoloji Delphi'ye kazandırıldı. Borland bu versiyonda ECO gibi bazı ilklere imza attı. Fakat bu gelişmelerden çok, herkesin beklediği .NET desteği biraz gecikti ve IDE'de bulunan hatalar herkesi bezdirdi. IDE'nin başarısızlığı ECO gibi teknolojilerin önemini perdeledi. Proje tipi olarak VCL Forms Application seçildiğinde Borland ürünü formlar, kontroller ve sınıflar kullanılmaktadır. VCL Forms Application'lar Delphi'nin daha önceki sürümleri ile hazırlanan projelerin geliştirilmiş halidir. Windows Forms Application tipi projelerde ise .NET Framework ile gelen Microsoft ürünü formlar, kontroller ve sınıflar kullanılmaktadır. Borland ürünü kontroller yerine Microsoft ürünü kontrolleri kullanmak istiyorsanız Windows Forms Application'lar hakkında bilgi içeren diğer kitabımızı almalısınız. Windows Forms Application'ları konu alan diğer kitabımız bu kitaptan oldukça farklı bir içeriğe sahiptir. Her iki kitabımızda değişkenler, blok kontrol deyimleri gibi birkaç ortak konu bulunmaktadır.
Delphi 2005 (Kodadı: Diamondback) === 12 Ekim 2004 tarihinde satışa sunuldu. .NET 1.1 ve Win32 desteği ile beraber geldi. Delphi 8'in ardından, Delphi kullanıcılarının karşısına gerçekten güçlü bir IDE çıkarıldı. ECO II ile model tabanlı progrmlamaya yeni bir soluk geldi. Özellikle Refactoring desteği, Delphi'nin 8. sürümünde kaybettiği imajını geri kazandırdı.
Delphi 2006 (Kodadı: Dexter) === 10 Ekim 2005 çıkış tarihidir. Her ne kadar Delphi programcıları .NET 2.0 desteğini bekleseler de, bu sürümün amacı .NET ve Win32 alanında iyileştirmelere gidilmesi idi. Özellikle Win32 kütüphanesindeki birçok temel rutinde, FastCode kütüphanesi kullanıldı. Yine bu sürümde de .NET 1.1 desteği veren Delphi, bizleri ECO III ile tanıştırdı. Ayrıca Win32 ve .NET ortamları için Together ve Caliber RM destekleri eklendi. Pattern Organizer, Code Templates gibi özelliklerin yanında Refactoring geliştirildi. Ayrıca bu sürümde C# Builder, C++ Builder bütünleşik olarak geldi.
Delphi 2007 for Vista (Kodadı: Spacely) === 19 Mart 2007 tarihinde çıktı. Bu sürümde esas amaç Windows Vista ve Ajax'tır. Ve bu sürüm sadece Win32 için çıkmıştır. .NET sürümü bulunmamaktadır.
Delphi for PHP (Kodadı: Astro) === 27 Mart 2007 tarihinde piyasaya sunuldu. Qadram şirketinin uzun süreden beri üzerinde uğraştığı QStudio, CodeGear (Borland'ın alt şirketi) tarafından satın alındı ve ismi Delphi for PHP olarak piyasaya çıktı. Özellikle VCL kütüphanesinin PHP versiyonu ile birlikte Qooxdoo ve Ajax destekleri ile ön plana çıkıyor.
Delphi 2009 (Kodadı: Tiburón) === 2008'nin ortasında çıkması planlanan 2009 sürümünün en önemli yeniliği VCL'in Unicode destekli hale gelecek olmasıdır. Bunun yanında Win32 için Generics desteğinin gelecek olması diğer bir yeni özellik olacak.
Delphi 2010 (Kodadı: Weaver) === Delphi 2009 den sonra çıkması planlanan Weaver sürümünün en önemli yeniliği VCL'in Reflection destekli hale gelecek olmasıdır.
Delphi XE (2011) (Kod Adı: Fulcrum) === Delphi 2010 dan sonra çıkan sürümüdür. Beklenenin aksine 64 bit desteği ile gelmemiştir. Delphi 2010'un IDE ortamının hataları giderilmiş bir sürümüdür. Yeni olarak Cloud Computing (Windows Azure ve Amazon E2C) ortamı için yazılım yazabilme desteğine sahiptir. Ayrıca SVN desteği ile sürümleme sistemi dahil edilmiştir. Bu sürümlerin ilerisinde ise aşağıdaki özelliklerin dile getirilmesi planlanmaktadır. # Unicode karakter seti ile kod yazımı. # multi-core/multi-threaded development # Development for PDAs and the Compact Framework # Language enhancements and standards conformance # Rich Internet Application (RIA) development # Cross-compilation to other operating systems # Continuously improved and frequently updated ********ation

Delphi Random Rakam Üretme

Delphi’de Rastgele Sayı Üretmek Delphi kullanarak rastgele sayı üretmek için Random komutu kullanılır. Random fonksiyonu parametreli veya parametresiz olarak kullanılabilir. Eğer Fonksiyon parametresiz kullanılır ise 0 ile 1 arasında rastgele ondalıklı sayı üretir. Eğer fonksiyon parametreli olarak kullanılırsa 0 ile kullanılan parametre arasında kalan sayılar arasından (0 dahil) rastgele bir tamsayı üretir
Delphi’de Rastgele Sayı Üretmek Delphi kullanarak rastgele sayı üretmek için Random komutu kullanılır. Random fonksiyonu parametreli veya parametresiz olarak kullanılabilir. Eğer Fonksiyon parametresiz kullanılır ise 0 ile 1 arasında rastgele ondalıklı sayı üretir. Eğer fonksiyon parametreli olarak kullanılırsa 0 ile kullanılan parametre arasında kalan sayılar arasından (0 dahil) rastgele bir tamsayı üretir.
var
uretilenSayi :
Real
;
begin
uretilenSayi := Random;
end
;
Random fonksiyonunun parametresiz kullanımına örnek kodlar yukarıdaki gibidir. Yukarıda uretilenSayiadında Real tipinde bir değişken tanımlanmış ardından bu değişkene değer atamak için Random komutu kullanılmıştır. Fonksiyon birkaç kez çalıştırılır ise fonksiyonun üreteceği değerler aşağıdaki gibi olabilir.
0
,
0313799395225942
0
,
861048467224464
0
,
202580965124071
0
,
671654418576509
0
,
318691271124408
Random kullanılarak ondalıklı sayı üretmek yerine tam sayı üretilmek istenirse o zaman fonksiyon parametreli olarak kullanılmalıdır.
var
uretilenSayi :
Integer
;
begin
uretilenSayi := Random(
100
);
end
;

Yukarıdaki kodlarda Integer tipinde uretilenSayi adında bir değişken tanımlanmış ve bu değişkene 0 ile 99 arasında rastgele bir değer atanmıştır. Örnekte 0 ve 99 sayıları rastgele sayı üretme aralığına dahildir. Kullanıcı rastgele sayı üretme aralığını 0’dan başlatmak yerine başka bir sayıdan başlatmak isteyebilir. Örneğin kullanıcı 25 ile 40 (25 ve 40 dahil) arasında rastgele sayı üretmek isterse kullanması gereken kod aşağıdaki gibi olmalıdır.
var
uretilenSayi :
Integer
;
begin
uretilenSayi := Random(
16
) +
25
;
// 25 ile 40 arasında sayı üretir.
end
;

Yukarıdaki örnekte Random(16) komutu 0 ve 15 arasında bir sayı üretir. Kullanıcı üretilen bu sayıya 25 değerini eklerse üretilen sayı 25-40 aralığına taşınmış olur. Random fonksiyonu rastgele sayı üretmesine rağmen üretilen sayılar tamamen rastgele değildir. Bu mekanizmada kullanılan bir rastgele sayı üretme algoritması vardır. Rastgele sayı üretirken sadece Random komutu kullanılır ise üretilen sayılar programın her çalıştırılmasında aynı olacaktır, yani program rastgele sayı değil sözde rastgele sayı üretmiş olacaktır. Bu da bazı durumlar için uygun olabileceği gibi (örneğin şifreleme algoritmaları) bazı durumlar için uygun olmayabilir. Programı her çalıştırılmasında aynı sırada bir rastgelelik yerine farklı bir rastgele sayı üretmesini istersek Randomize komutunu kullanmamız gerekir.