Bölüm 2- DELPHI'NİN TEMELLERİ (Pratik kodlar ve Değişkenler)
Örnekleri Yapabilmeniz İçin Gerekli Olan Pratik Kodlar:
EditBox’ın içerisinde bulunan değeri tamsayı tipli değişkene aktarmak
EditBox’ın içerisinde bulunan değeri tamsayı tipli değişkene aktarmak
Koda dikkat edecek olursanız ilk olarak “x” isminde tamsayı değişkeni tanımlanmakta olup, kontroldeki değeri alabilmesi için “StrToInt” (Stringi Tamsayıya çevir) tip çeviri fonksiyonuna ihtiyaç duyulmaktadır. Eğer bu tip dönüştürme işlemini yapmazsanız, Delphi size sonucu hesaplayamayacağına dair hata mesajı iletecektir.
TamSayı tipli değişkenin değerini yazdırmak
TamSayı tipli değişkenin değerini yazdırmak
Tamsayı tipli bir değişkeni yazdırabilmek için muhakkak “String”e çevirmelisiniz. Bu dönüşümü yapabilmeniz için Delphi’de “IntToStr”
fonksiyonu kullanılabilmektedir.
Uyarı:Bu tür tip dönüştürme işlemlerinde kullandığınız atama operatörünün (“:=”) solundaki ve sağındaki verinin tiplerinin aynı olması gerekmektedir.
Ayrıca kontroller üzerinde klavye ile girilebilen veri tiplerinin string olduğunu da unutmayınız.
EditBox’ın içerisinde bulunan değeri Reel Sayı tipli değişkene aktarmak
fonksiyonu kullanılabilmektedir.
Uyarı:Bu tür tip dönüştürme işlemlerinde kullandığınız atama operatörünün (“:=”) solundaki ve sağındaki verinin tiplerinin aynı olması gerekmektedir.
Ayrıca kontroller üzerinde klavye ile girilebilen veri tiplerinin string olduğunu da unutmayınız.
EditBox’ın içerisinde bulunan değeri Reel Sayı tipli değişkene aktarmak
Uygulanan yöntem şu; atama operatörünün sol ve sağında yer alan veri tiplerinin aynı olmasını sağlamak için “Edit” kontrolünün içerisinde yer alan değer “StrToFloat” fonksiyonu sayesinde reel sayı tipine çevrilmekte, ondan sonra atama işlemi gerçekleştirilebilmektedir.
Reel Sayı Tipli Bir Değişkenin Değerini Yazdırmak:
Reel Sayı Tipli Bir Değişkenin Değerini Yazdırmak:
Aynı mantık uygulanarak reel sayı değişkeni “FloatToStr” tip dönüştürme fonksiyonu sayesinde stringe çevrilip, arkasından da EditBox’ın içerisinde yazdırılmaktadır (Herhangi bir tipteki matematiksel değişkenin değerini yazdırabilmeniz için muhakkak stringe dönüştürmeniz gerekir. Aksi halde Delphi size hata mesajı iletecektir).
EditBox’ın İçerisine String Veri Yazdırmak:
String tipli bir değişkenin değerini (veya direkt string i) EditBox kontrolünde yazdırabilmeniz için (‘) operatöründen faydalanabilirsiniz. Aşağıda her iki durum içinde örneklendirme yapılmıştır.
EditBox’ın İçerisine String Veri Yazdırmak:
String tipli bir değişkenin değerini (veya direkt string i) EditBox kontrolünde yazdırabilmeniz için (‘) operatöründen faydalanabilirsiniz. Aşağıda her iki durum içinde örneklendirme yapılmıştır.
Aşağıda verilen örnekte ise procedure içerisinde string tipli bir değişken tanımlanarak, bu değişkene aktarılacak olan içerik yazdırılmaktadır.
Burada kullanılan “x” değişkeninin tipi string olarak verildiği için atama (:=) operatörünün sol ve sağındaki tipler aynı olmaktadır. Bu yüzden tip dönüşüm işlemi uygulamak zaten mantıksız olurdu.
EditBox’ın içerisinde bulunan değeri Tarihsel tipli değişkene aktarmak
Bir çok uygulamanızda tarihsel veri içeren değerlerle işlem yapmak zorunda kalacaksınız. Bu elinizdeki tarihsel değişkenin değerini yazdırmak, veya tarihsel değer barındıran bir kontrolün içeriğini değişkene aktarmak şeklinde olabilir. Şimdi sizlere EditBox’ın içerisinde bulunan string (Ama tarihe dönüştürülebilir) içeriği tarihsel bir değişkene nasıl aktarabileceğinizi göstereceğim.
EditBox’ın içerisinde bulunan değeri Tarihsel tipli değişkene aktarmak
Bir çok uygulamanızda tarihsel veri içeren değerlerle işlem yapmak zorunda kalacaksınız. Bu elinizdeki tarihsel değişkenin değerini yazdırmak, veya tarihsel değer barındıran bir kontrolün içeriğini değişkene aktarmak şeklinde olabilir. Şimdi sizlere EditBox’ın içerisinde bulunan string (Ama tarihe dönüştürülebilir) içeriği tarihsel bir değişkene nasıl aktarabileceğinizi göstereceğim.
Kodu inceleyecek olursak, kontrolün içerisindeki string tipli veri “StrToDate” fonksiyonu sayesinde tarihsel içeriğe dönüştürülüp bir gün eklenmektedir.
Ardından tekrar ters dönüşüm yapılarak (tarihten-stringe), formunuzun başlığında yazdırılmaktadır.
Tarihsel Değişkenin Değerini Yazdırmak:
Tarihsel içerikli bir değişkenin değerini aşağıdaki şekilde oluşturacağınız bir kod satırı sayesinde kolaylıkla yazdırabilirsiniz.
Ardından tekrar ters dönüşüm yapılarak (tarihten-stringe), formunuzun başlığında yazdırılmaktadır.
Tarihsel Değişkenin Değerini Yazdırmak:
Tarihsel içerikli bir değişkenin değerini aşağıdaki şekilde oluşturacağınız bir kod satırı sayesinde kolaylıkla yazdırabilirsiniz.
Tip dönüştürme işlemlerine lütfen dikkat ediniz.
Aktif Formu Kapatmak:
Çalışan aktif formu kapatmak (Eğer tek formunuz varsa aynı zamanda programınız da sonlanacaktır.) için aşağıda gösterilen şekilde basit bir kodlama kullanabilirsiniz.
Çalışan aktif formu kapatmak (Eğer tek formunuz varsa aynı zamanda programınız da sonlanacaktır.) için aşağıda gösterilen şekilde basit bir kodlama kullanabilirsiniz.
Alt Satırdaki Kodların İşlemesini Engellemek:
Bazı durumlarda procedure içerisinde belirlediğiniz bir koşul oluştuğu anda alt satırlardaki kodların işlemesini istemeyip, kod okumayı sonlandırabilirsiniz.
(C++ daki return, veya Visual Basic deki Exit Sub). Yan tarafta bu uygulamanın bir örneğini inceleyebilirsiniz.
Şayet “exit” komut satırı olmasaydı formun başlığında “Ugur İspir” stringi yazacaktı. Fakat “exit” sayesinde altta yer alan iki satır kod okutulmamakta, bundan dolayı formun başlığında “Hasan ERGİN” içeriği yazdırılmaktadır (Bir çok durumda çok fazla işinize yarayacak bir komuttur).
(C++ daki return, veya Visual Basic deki Exit Sub). Yan tarafta bu uygulamanın bir örneğini inceleyebilirsiniz.
Şayet “exit” komut satırı olmasaydı formun başlığında “Ugur İspir” stringi yazacaktı. Fakat “exit” sayesinde altta yer alan iki satır kod okutulmamakta, bundan dolayı formun başlığında “Hasan ERGİN” içeriği yazdırılmaktadır (Bir çok durumda çok fazla işinize yarayacak bir komuttur).
Programı Sonlandırmak:
Aktif formla beraber diğer tüm formları da kapatmak için yan taraftaki gibi bir kod satırı kullanabilirsiniz.
Programı İkinci Formdan Başlatmak
Şayet uygulamanızda birden fazla Windows formu varsa ve siz projenizi ikinci (veya diğer herhangi bir formda olabilir) formunuzdan başlatmak istiyorsanız, belirtilen adımları izlemelisiniz.“Project->Options” menü adımlarından sonra aşağıdaki pencere açılacaktır.
Bu pencerenin “Forms” yaprağını aktifleştirin. Bu yaprakta bulunan “MainForm" kısmından programın ilk çalıştırılacağı formu seçebilirsiniz (Bu pencerede uygulamanıza dahil edilmiş olan tüm pencereler listeli halde bulunacaktır).
Değişkenler:
Paket yazılımların her firma için (veya kişi) farklı sonuçlar oluşturması, programın içerisinde değişkenlerin kullanılmasından kaynaklanmaktadır. Zaten böyle olmasaydı yazılımların hiç bir anlamı kalmazdı. Delphi’de değişken temeline dayalı yazılım dilidir ve bu hususta sanıyorum varılabilecek en üst noktaya ulaşmış bulunmaktadır. Bu kadar önemli olan bir konuda tabiidir ki dikkat edilecek birtakım önemli hususlar vardır. Şimdi sizlere bu hususlardan bahsetmek istiyorum. Delphi’de değişken kullanılacaksa muhakkak programa bildirilmelidir. Bir değişkeni programa bildirmek için iki yöntem bulunur. Bunlardan birincisi procedure’un dilediğiniz yerinde değerini değiştirebilmenizi sağlayan “Var” bildirisi, diğeri ise tanımlandığında atanacak olan değer dışında başka değer alamayan (İstisnaları vardır. Daha sonra izah edilecektir.) “Const” bildirisidir. Ayrıca Delphi’de değişkenlerinizi rastgele yerlerde tanımlayamazsınız, değişken tanımlayabilmeniz için size procedure’un içerisinde bir blok sunmaktadır.
Delphi size procedure-begin arasında değişken tanımlama imkanı vermektedir. Başka rastgele bir yerde değişken tanımlamanız mümkün olmamaktadır. Bu blokta Const’la tanımlanmış değişkenlere ilk değerini atama dışındaki işlemleri yapamazsınız (Bu tür kodsal işlemler sadece procedure’den sonra gelen beginend bloğu içerisinde yapılabilir). Aşağıdaki kod penceresinde, procedure içerisinde local (Sadece o procedure tarafından kullanılabilen ve işlem bittikten sonra bellekten atılan değişkenlerdir.) değişkenlerin nasıl tanımlanabileceği gösterilmiştir. Belirtilen blok içerisinde tanımlanan tüm değişkenler local değişken olarak adlandırılırlar. Bir değişkenin local olması diğer procedure’ler tarafından kullanılamaması ve yordam bir kere işletildikten sonra o değişkenin bellekten atılacağı anlamını taşımaktadır. Pencereyi dikkatlice inceleyiniz.
Delphi’de aynı satırda araya ”,” koyarak aynı tipte birden fazla değişken tanımlanabilmektedir. Ayrıca tek bir “var” bildirisi kullanarak birden fazla satırda değişken tanımlamakta mümkündür (Aynı işlem const içinde mümkün
olmaktadır).
olmaktadır).
Değişken Tanımlarken Dikkat Edilecek Olan Hususlar
Değişkeninizi tanımlarken aşağıdaki hususlara dikkat etmelisiniz.
• Değişken isimleri kesinlikle rakamla başlayamaz. Fakat ismin içerisinde veya sonunda rakam kullanılabilir.
Var //Değişken bildirisi için gereklidir.
5nih:integer; //Yanlış tanımlanmış bir değişken
nih55:integer; //Doğru tanımlanmış bir değişken
•Değişken isimleri içerisinde değişik karakterler kullanamazsınız (Başında veya sonunda da olamaz).
Var
Nih#dem:integer; //Yanlış tanımlanmış bir değişken
Nih#3:AnsiString; //Yanlış tanımlanmış bir değişken
• Değişken isimlerinde araya space tuşuyla boşluk bırakamazsınız. Yani değişkeninizin ismi birden fazla kelimeden oluşamaz. Eğer böyle bir değişken (Adı ve soyadını ayrık yazmak isteyebilirsiniz) tanımlamak zorunda kalırsanız, iki kelime arasına “_” karakterini yerleştirin.
Var
N demirli:AnsiString; //Yanlış bir değişken tanımlandı
N_demirli:AnsiString; //Doğru bir değişken tanımlaması
• Delphi içerisinde kullanılan herhangi bir komut değişken ismi olarak kullanılamaz.
Var
Not:integer; //Yanlış bir değişken tanımlandı
Not1:integer; //Doğru bir değişken tanımlaması
• Var bildirisiyle tanımlanan bir değişkene tanımlandığı anda değer ataması yapılamaz.
Var
Sayi:integer=100; //Yanlış bir atama
Numara:Double=200.25 //Yanlış bir atama
Sayısal bir değişken tanımlandığı anda ilk değer olarak belirtilen tipe göre rastgele bir değer almaktadır (0 değil).
• Const ile yapılan bildiri sonucu tanımlanmış olan değişkene ilk değerini atamak zorunludur.
Const
Pi:Double; //Yanlış bir değişken tanımlaması
Pi:Double=3.14; //Doğru bir değişken tanımlaması
• Var bildirisiyle tanımlanmış değişkene procedure içerisinde istenildiği anda yeni bir atama yapılabilir.
• Const ile bildirilmiş sabit değişkenlere procedure içerisinde yeni değer aktarılamaz (Bunun istisnası vardır. Özel bildiriler eklenerek değişkene yeni değer aktarılabilmektedir, fakat bu konu daha sonra detaylı olarak işlenecektir).
• Local değişkenker procedure işlemeye başladığı anda bellekte oluşturulup, kod sonlandığı anda da bellekten atılırlar.
• Değişken isimleri kesinlikle rakamla başlayamaz. Fakat ismin içerisinde veya sonunda rakam kullanılabilir.
Var //Değişken bildirisi için gereklidir.
5nih:integer; //Yanlış tanımlanmış bir değişken
nih55:integer; //Doğru tanımlanmış bir değişken
•Değişken isimleri içerisinde değişik karakterler kullanamazsınız (Başında veya sonunda da olamaz).
Var
Nih#dem:integer; //Yanlış tanımlanmış bir değişken
Nih#3:AnsiString; //Yanlış tanımlanmış bir değişken
• Değişken isimlerinde araya space tuşuyla boşluk bırakamazsınız. Yani değişkeninizin ismi birden fazla kelimeden oluşamaz. Eğer böyle bir değişken (Adı ve soyadını ayrık yazmak isteyebilirsiniz) tanımlamak zorunda kalırsanız, iki kelime arasına “_” karakterini yerleştirin.
Var
N demirli:AnsiString; //Yanlış bir değişken tanımlandı
N_demirli:AnsiString; //Doğru bir değişken tanımlaması
• Delphi içerisinde kullanılan herhangi bir komut değişken ismi olarak kullanılamaz.
Var
Not:integer; //Yanlış bir değişken tanımlandı
Not1:integer; //Doğru bir değişken tanımlaması
• Var bildirisiyle tanımlanan bir değişkene tanımlandığı anda değer ataması yapılamaz.
Var
Sayi:integer=100; //Yanlış bir atama
Numara:Double=200.25 //Yanlış bir atama
Sayısal bir değişken tanımlandığı anda ilk değer olarak belirtilen tipe göre rastgele bir değer almaktadır (0 değil).
• Const ile yapılan bildiri sonucu tanımlanmış olan değişkene ilk değerini atamak zorunludur.
Const
Pi:Double; //Yanlış bir değişken tanımlaması
Pi:Double=3.14; //Doğru bir değişken tanımlaması
• Var bildirisiyle tanımlanmış değişkene procedure içerisinde istenildiği anda yeni bir atama yapılabilir.
• Const ile bildirilmiş sabit değişkenlere procedure içerisinde yeni değer aktarılamaz (Bunun istisnası vardır. Özel bildiriler eklenerek değişkene yeni değer aktarılabilmektedir, fakat bu konu daha sonra detaylı olarak işlenecektir).
• Local değişkenker procedure işlemeye başladığı anda bellekte oluşturulup, kod sonlandığı anda da bellekten atılırlar.
Delphi’de Sabit Değişken Tanımlamak
Bazı durumlarda değeri hiç değişmeyen sabit bir değişken tanımlamak isteyebilirsiniz. Mesela matematikteki pi sayısı veya logaritmada kullanılan e sayısı gibi, işte bu tip değişkenleri özel bir bildirimle yapmalısınız. Aşağıda bu husus uygulama ile örneklendirilmiştir.
Sabit tipli değişken kullanılarak dairenin alanının hesaplanması
Tüm Alt Yordamlar Tarafından Kullanılabilecek Değişken Tanımlamak
Sanıyorum hepiniz biliyorsunuz, bu işleme global değişken tanımlama adını veriyoruz. Bu olayı örneklendirecek olursak; birinci buttona tıkladığınız zaman değişkene atadığınız değeri, ikinci buttona tıkladığınız zaman kullanmakisterseniz o değişkeni global olarak tanımlamalısınız. Aşağıdaki videoda global tipli değişkeni nasıl tanımlıyacağımız ve uygulamamıza nasıl dahil edeörneklendirilmiştir.