SlideShare a Scribd company logo
1 of 56
DELPHİ XE5
MATEMATİKSEL İŞLEMLER
Tam sayılarla işlem yapabilmemiz için “integer” değişkenini,
Reel sayılarla işlem yapabilmemiz için “real” değişkenini tanımlamamız
gerekiyor.
Delphi XE5 programında matematiksel işlemler yapmak için sayısal değişkenler
kullanacağız.
Tam Sayılarda Toplama İşlemi:
Toplama işlemi yapmadan önce formumuza iki adet edit ve bir adet buton
ekleriz.
StrToFloat(); => String tipi Float tipe dönüştürür (Reel sayılar için.)
FloatToStr(); => Float tipi String tipe dönüştürür (Reel sayılar için.)
StrToInt(); => String tipi Integer tipe dönüştürür (Tam sayılar için.)
IntToStr(); => Integer tipi String tipe dönüştürür (Tam sayılar için.)
Toplama işlemi “+” operatörü ile yapılır.
MATEMATİKSEL İŞLEMLER
KODLAR YAZILDIKTAN SONRA SHIFT+CTRL+F9 TUŞLARINA AYNI ANDA BASILARAK IŞLEM YAPTIRILIR.
MATEMATİKSEL İŞLEMLER
REEL SAYILARDA TOPLAMA İŞLEMI:
MATEMATİKSEL İŞLEMLER
KODLAR YAZILDIKTAN SONRA SHIFT+CTRL+F9 TUŞLARINA AYNI ANDA BASILARAK
IŞLEM YAPTIRILIR.
MATEMATİKSEL İŞLEMLER
Reel sayılarda toplama yapalım ama sonucu yazdırırken yuvarlayıp tam sayı olarak
yazdıralım;
Round(); => Reel sayıyı (Real) Tam Sayı (Integer) yapar (yuvarlar.)
MATEMATİKSEL İŞLEMLER
Kodlar yazıldıktan sonra shift+ctrl+F9 tuşlarına aynı anda basılarak işlem yaptırılır.
MATEMATİKSEL İŞLEMLER
Tam Sayılarda Çıkarma İşlemi:
Çıkarma işlemi “-” operatörü ile yapılır.
MATEMATİKSEL İŞLEMLER
Kodlar yazıldıktan sonra shift + ctrl +F9 tuşlarına aynı anda basılarak işlem yaptırılır.
MATEMATİKSEL İŞLEMLER
Tam Sayılarda Çarpma İşlemi:
Çarpma işlemi “*” operatörü ile yapılır.
MATEMATİKSEL İŞLEMLER
Kodlar yazıldıktan sonra shift+ctrl+F9 tuşlarına aynı anda basılarak işlem yaptırılır.
MATEMATİKSEL İŞLEMLER
Tam Sayılarda Bölme İşlemi:
Bölme işlemi “/” operatörü ile yapılır.
Bölme işlemi yapılırken sonuç değişkeni reel olmak zorundadır.
Kalansız bölme için “div” komutunu kullanabiliriz.
Kalansız bölme yapılırken sonuç değişkeni Reel olmak zorunda değildir!
MATEMATİKSEL İŞLEMLER
Kodlar yazıldıktan sonra shift+ctrl+F9 tuşlarına aynı anda basılarak işlem yaptırılır.
MATEMATİKSEL İŞLEMLER
STRİNG METODLAR
CompareStr(metin1,metin2)
Tanımlama: function CompareStr(const S1, S2: string): Integer;
Birinci ve ikinci parametre ile girilen metinlerin eşit olup olmadıklarını
kontrol edebilen bir fonksiyondur. İkinci metnin içerisinde birinci metni
arar, şayet bulursa negatif, bulamazsa pozitif, ikisi aynı ise sıfır değerini
döndürür.
STRİNG METODLAR
Concat(metin1,metin2................metinn)
Tanımlama: function Concat(s1 [, s2,..., sn]: string): string;
Parametre ile belirtilen değişken değerlerini yan yana yazdırmak için kullanılan
bir fonksiyondur.
Şayet araya boşluk bırakılması istenirse, o zaman kodu aşağıdaki şekilde değiştirmelisiniz.
STRİNG METODLAR
Copy(metin,index,adet)
Tanımlama:function Copy(S; Index, Count: Integer): string;
function Copy(S; Index, Count: Integer): array;
Birinci parametreyle girilen metnin içeriğinden, ikinci parametrede belirtilen
karakterden sonra, üçüncü parametreyle belirtilen adet kadar karakteri söküp
alabilen bir fonksiyondur. Fonksiyondan geriye dönen değer yine bir AnsiString veri olacağı
için sonuç herhangi bir tip dönüştürme işlemine gerek kalmadan
direkt olarak yazdırılabilir. Aşağıda bu fonksiyona ait örneklendirme yapılmıştır.
Dikkatlice inceleyiniz.
STRİNG METODLAR
Delete (metin,index,adet)
Tanımlama: procedure Delete(var S: string; Index, Count:Integer);
Birinci parametre ile girilen metin değerinden, ikinci parametre ile girilen
karakterden sonra, üçüncü parametreyle girilen sayı kadar karakteri söküp atan
bir prosedürdür. Dikkat edeceğiniz husus, yapılan değişikliğin metin isimli
parametrenin değerine yansıyacağıdır.
STRİNG METODLAR
DupeString (metin,adet)
Tanımlama: function DupeString(const AText: string; ACount: Integer): string;
Birinci parametreyle girilen metni, ikinci parametreyle girilen adet kadar yan yana yazmak
için kullanılan bir fonksiyondur.
STRİNG METODLAR
Insert (eklenecek_metin,metin,başlangıç_karakteri)
Tanımlama: procedure Insert (Source: string; var S: string; Index: Integer);
Birinci parametreyle girilen metni, ikinci parametreyle girilen metne, üçüncü
parametrede belirtilen karakterden sonra eklemek için kullanılan bir
prosedürdür. Burada dikkat edeceğiniz husus, yapılan değişikliğin ikinci
parametre değerine yansıyacağıdır.
STRİNG METODLAR
LeftBStr(metin,adet)
Tanımlama:function LeftBStr(const AText: AnsiString; const AByteCount: Integer):
AnsiString;
Birinci parametreyle belirtilen metinden, ikinci parametreyle belirtilen adet
kadar karakteri söküp alabilen bir fonksiyondur.
Daha öncede aynı işlemi yapan fonksiyonu göstermiştik. Başında “Ansi” olan
fonksiyon ve prosedürlerin kullanabileceği karakterler daha fazladır. Ama tercih
tamamen sizlere kalmıştır. İstediğiniz fonksiyonu veya prosedürü
kullanabilirsiniz.
STRİNG METODLAR
Length(metin)
Tanımlama: function Length(S): Integer;
Parametre ile belirtilen metnin kaç karakterden oluştuğunu hesaplayabilmek için
kullanılan bir fonksiyondur.
Fonksiyondan geriye dönen değer tam sayı tipli olacağı için, başlıkta yazdırmak
tip dönüştürme fonksiyonu sayesinde yapılabilmektedir.
STRİNG METODLAR
LowerCase(metin)
Tanımlama: function LowerCase(const S: string): string;
AnsiLowerCase (daha önce izah edildi) fonksiyonunun yaptığı işi yapar (Ansi
kütüphanesinin daha zengin olduğunu hatırlatalım). Parametre olarak girilen
metni küçük harfe dönüştürmek için kullanılır.
STRİNG METODLAR
MidStr(metin,başlangıç,adet)
Tanımlama:function MidStr(const AText: AnsiString; const AStart, ACount: Integer):
AnsiString; overload;
function MidStr(const AText: WideString; const AStart, ACount: Integer):
WideString; overload;
Birinci parametre ile belirtilen metinden, ikinci parametre ile girilen başlangıç
karakterinden başlayarak, üçüncü parametre ile girilen adet kadar karakteri
parçalayıp almak için kullanılan bir fonksiyondur.
STRİNG METODLAR
Pos(metin1,metin2)
Tanımlama: function Pos(Substr: string; S: string): Integer;
Birinci parametre ile girilen değer ile ikinci parametre ile girilen değeri
karşılaştırmak için kullanılan bir fonksiyondur. Şayet iki parametre farklı
değerler içeriyorsa (içinde bulunmuyor ise) sonuç “0” olacaktır.
STRİNG METODLAR
RightStr(metin,sağdan_kaç_karakter)
Tanımlama:function RightStr(const AText: AnsiString; const ACount: Integer):
AnsiString; overload;
function RightStr(const AText: WideString; const ACount: Integer):
WideString; overload;
Birinci parametre ile belirtilen metnin sonundan, ikinci parametre ile belirtilen
adet kadar karakteri söküp almak için kullanılan fonksiyondur (AnsiRightStr
fonksiyonunun yaptığı işi yapar).
STRİNG METODLAR
SetLength(metin,soldan_kaç_karakter)
Tanımlama: procedure SetLength(var S; NewLength: Integer);
Birinci parametre ile belirtilen metinden, ikinci parametre ile belirtilen adet
kadar karakteri söküp alabilen bir prosedürdür.
STRİNG METODLAR
SetString(metin,katar,soldan_kaç_karakter)
Tanımlama: procedure SetString(var s: string; buffer: PChar; len: Integer);
Birinci parametre ile belirtilen metne, ikinci parametre ile belirtilen katarın,
üçüncü parametre ile belirtilen adet kadar karakterini (soldan) aktarabilen bir
prosedürdür.
STRİNG METODLAR
Str(sayi,metin)
Tanımlama: procedure Str(X [: Width [: Decimals ]]; var S);
Birinci parametre ile girilen sayıyı (ondalıklı veya tam sayı), ikinci parametre ile
girilen metne aktarmak için kullanılan bir prosedürdür. İlk parametre parasal
tipte bir değişken de olabilir.
STRİNG METODLAR
StringOfChar(karakter,adet)
Tanımlama: function StringOfChar(Ch: Char; Count: Integer): string;
Birinci parametre ile belirtilen karakteri, ikinci parametre ile belirtilen adet
kadar yan yana yazdırmak için kullanılan bir fonksiyondur.
STRİNG METODLAR
StringReplace(metin,değişece_bölüm,yeni_bölüm,seçenek)
Tanımlama: function StringReplace(const S, OldPattern, NewPattern: string; Flags:
TReplaceFlags): string;
Birinci parametre ile verilen metin içerisinde, ikinci parametre ile verilen kısmı,
üçüncü parametre ile verilen içerikle değiştirmek için kullanılan bir
fonksiyondur.
STRİNG METODLAR
StuffString(metin,başlangıç,uzunluk,yeni_metin)
Tanımlama: function StuffString(const AText: string; AStart, ALength:
Cardinal; const
ASubText: string): string;
StringReplace fonksiyonuna benzer iş görmektedir. Aralarındaki fark,
değiştirilecek olan kısmın burada karakter sayısı ile belirlenmesidir. Aşağıda bu
fonksiyon örneklendirilmiştir.
STRİNG METODLAR
Trim(metin)
Tanımlama: function Trim(const S: string): string; overload;
function Trim(const S: WideString): WideString; overload;
Parametre ile girilen metnin sol ve sağındaki tüm boşlukları atmak için
kullanılan bir fonksiyondur.
Bilhassa yanlışlıkla space tuşuna basılması durumunda oluşabilecek olan
hataları engellemek amacıyla kullanılan bir fonksiyondur. Bu fonksiyondan
dolayı kelimeler arasında bulunan boşluklar hiç bir değişikliğe uğramazlar
(aynen kalırlar).
STRİNG METODLAR
TrimLeft(metin)
Tanımlama: function TrimLeft(const S: string): string; overload;
function TrimLeft(const S: WideString): WideString; overload;
Parametre ile girilen metnin sol tarafında bulunan boşlukları atmak için kullanılan
fonksiyondur. Son kısımda bulunan boşluklara dokunmaz.
STRİNG METODLAR
TrimRight(metin)
Tanımlama:
function TrimRight(const S: string): string; overload;
function TrimRight(const S: WideString): WideString; overload;
Parametre ile girilen metnin sağ tarafında bulunan boşlukları atmak için
kullanılan fonksiyondur. Başlangıç kısımda bulunan boşluklara dokunmaz.
STRİNG METODLAR
UpperCase(metin)
Tanımlama: function UpperCase(const S: string): string;
Parametre ile girilen metindeki karakterlerin tamamını büyük harfe çevirmek
için kullanılan fonksiyondur. Şayet metin içerisinde büyük harfe rastlarsa onlara
dokunmayacaktır. Daha önce örneklendirildiği için tekrar değinilmeyecektir.
STRİNG METODLAR
WrapText(metin,işlenv,alta_indirecek_karakterler,maxkarakter)
Tanımlama:function WrapText(const Line, BreakStr: string; nBreakChars: TSysCharSet;
MaxCol: Integer):string; overload;
function WrapText(const Line, MaxCol: Integer = 45):string; overload;
Birinci parametrede belirleyeceğiniz metni, üçüncü parametrede belirleyeceğiniz
karakterlerden herhangi bir tanesine rastlaması durumunda alt satıra indirmek
için kullanılan bir fonksiyondur. Aşağıdaki örneği dikkatlice inceleyiniz.
STRİNG METODLAR
Chr(sayi)
Tanımlama: function Chr(X: Byte): Char;
Parametre ile girilen Ascii (0-255 arası) değerinin karakter karşılığını bulmak
için kullanılan bir fonksiyondur.
STRİNG METODLAR
Ord(karakter)
Tanımlama: function Ord(X);
Parametre ile girilen karakterin ascii değerini hesaplayan bir fonksiyondur.
Fonksiyondan tam sayı tipli bir değer döneceği için yazdırmak için IntToStr tip
dönüştürme fonksiyonunu kullanmalısınız.
Fonksiyonu örneklendirecek olursak; Edit kutusuna girilecek olan karakterin
Ascii karşılığını başlıkta yazdırmak için aşağıdaki gibi “KeyPress” yordamına
kod yazmalısınız.
STRİNG METODLAR
Val(metin,değişken,hata)
Tanımlama: procedure Val(S; var V; var Code: Integer);
Birinci parametreyle girilen içeriğin soldan matematiksel anlamı olan kısmını
ikinci parametreye aktarır. Prosedür sayesinde ikinci parametrenin değeri
değişecektir.
STRİNG METODLAR
StrToInt(metin)
Tanımlama: function StrToInt(const S: string): Integer;
String içerikli değerleri tam sayıya çevirmek için kullanılan bir fonksiyondur.
Sayısal içeriğe çevrilemeyen bir karaktere rastlarsa hata üretecektir.
STRİNG METODLAR
StrToIntDef(metin,varsayılan_değer)
Tanımlama: function StrToIntDef(const S: string; const Default: Integer): Integer;
StrToInt fonksiyonu ile aynı işi yapar. Aralarındaki tek fark şayet sayıya
dönüştürülemeyecek bir değer gönderilirse, bu durumda fonksiyon hata
üretmemekte, ikinci parametre ile belirtilen değeri işleme sokmaktadır. Farkı
anlamanız için aşağıdaki iki örneği dikkatlice inceleyiniz.
Üstteki kodlamada metin değişkeninin içeriğinde “A” karakteri (sayıya
çevrilemez) bulunduğu için, değer isimli değişkenin içeriği ikinci parametre ile
girilen “0” değerine eşit olacaktır. Bu aktarmayı StrToInt fonksiyonu ile
yaparsanız uygulamanız size hata mesajı verecektir.
STRİNG METODLAR
StrToFloat(metin)
Tanımlama:function StrToFloat(const S: string): Extended; overload;
function StrToFloat(const S: string; const FormatSettings: TFormatSettings):
Extended; overload;
Parametre ile girilen metni ondalıklı sayıya çevirmek için kullanılan bir
fonksiyondur. Ondalıklı sayıya çevrilemeyecek bir karaktere rastlarsa
uygulamanız hata mesajı verecektir.
STRİNG METODLAR
IntToStr(sayi)-FloatToStr(ondalıklı_sayı)
Tanımlama:function IntToStr(Value: Integer): string; overload;
function IntToStr(Value: Int64): string; overload;
Parametre olarak girilen tam sayıyı stringe çevirmek için kullanılan
fonksiyondur. Bilhassa kullanıcının görmesini istediğiniz içerikleri stringe
çevirmek zorunda kalacaksınız.
IntToStr(sayi)-FloatToStr(ondalıklı_sayı)
Tanımlama:function IntToStr(Value: Integer): string; overload;
function IntToStr(Value: Int64): string; overload;
Parametre olarak girilen tam sayıyı stringe çevirmek için kullanılan
fonksiyondur. Bilhassa kullanıcının görmesini istediğiniz içerikleri stringe
çevirmek zorunda kalacaksınız.
Parametre olarak girilen ondalıklı sayıyı string içeriğe çevirmek için kullanılan
fonksiyondur.Diğer fonksiyonlarda yeterince uygulama yapıldığı için tekrar örnek
verilmeyecektir.
STRİNG METODLAR
FormatFloat(format_tipi,sayi)
Tanımlama: function FormatFloat(const Format: string; Value: Extended): string;
overload;
function FormatFloat(const Format: string; Value: Extended; const
FormatSettings: TFormatSettings): string; overload;
İkinci parametre ile girilen ondalıklı sayıya, birinci parametre ile belirlenen
formatı uygulayan fonksiyondur. Birinci parametre için belirleyebileceğiniz
format tipleri aşağıda tablo halinde verilmiştir.
Şimdi fonksiyona ait bir örnek yapalım. Aşağıdaki gibi bir form tasarımı
oluşturun.
HATA YAKALAMA
Delphi’de Oluşabilecek İllegal Durumları Çözmek:
Yazmış olduğunuz kodlar içerisinde tahmin edebildiğiniz veya
edemediğiniz,hata oluşturmaya müsait bir çok durum olabilir. Bu hatalardan
bir kısmını bildiğimiz kodlarla engellemek mümkün olmakla beraber, diğerleri
için bu mümkün olmayabilir (Mesela Edit kutusu içerisindeki verinin sayısal
olup olmadığını daha başka yollarla kontrol etmek mümkün olabilir). Bu
yüzden bu tip durumlarda, aşağıda göstereceğim lokal ve genel hata
yakalama yöntemlerinden bir tanesini (veya ikisini de) kullanmalısınız.
HATA YAKALAMA
Lokal Hata Yakalama:
Lokal hata yakalama tek bir prosedür içerisinde oluşabilecek hataları
programa bildirme amaçlı kullanılan bir yöntemdir. Aşağıda
seçenekleri incelenmektedir.
HATA YAKALAMA
Aşağıdaki gibi bir kodunuzun var olduğunu düşünün. Bu kodda Edit içerisine
girilen içerik tamsayıya çevrilerek, tamsayı tipli bir değişkene aktarılmaktadır.
Burada girilen değer içerisinde sayısal olmayan bir karakterin olması programın
kırılmasına (Bir programın kırılması çökmesi demek değildir. Çalışmaya aynen
devam edebilirsiniz. Ama hiç hoş olmayan bir durumun olduğu da
meydandadır.) sebep olacaktır.
HATA YAKALAMA
HATA YAKALAMA
Aşağıdaki örnekte Edit kontrolünün içerisine sayısal içerik girilene kadar
kontrolü kaybetmemesi sağlanmaktadır.
HATA YAKALAMA
Try-Finally-End:
Hata olsa da olmasa da işletilecek olan kod satırlarınız varsa, bunları “Finally”
bloğuna yazmalısınız. Yani Finally bloğu hata olsa da olmasa d a program
tarafından işletilecektir. Yapı aşağıda verilmiştir.
Try
//Hataya müsait Kodlar Buraya Yazılacak
Finally
begin
//Hata olsada olmasada işleyecek olan kod bloğu
end;
end;
Genellikle yaratılmış olan objeleri bellekten atma işlemi bu blokta yapılır.
Çünkü hata olsa da olmasa da nesnelerin bellekte kalmaları istenmez.
HATA YAKALAMA
Genel Hata Yakalama:
Tüm uygulamanın kullanacağı genel hata yakalama işlemi uygulayacaksanız,
(Windows un yapmış olduğu “Program geçersiz bir işlem yürüttü kapatılacak”
gibi) aşağıdaki gibi hata olduğu zaman işleyecek olan bir prosedür
tanımlamalısınız. Ardından hata olduğu zaman işletilmesi gerektiğini programa
bildirmeniz gerekecektir. Aşağıda bu işlemi adım adım izah edeceğim, lütfen
dikkatlice uygulayınız.
Birinci adımda, programınızın Unit bölümüne geçerek “yakala” ismindeki
prosedürü tanımlayın.
HATA YAKALAMA
İkinci adımda imleç prosedürün tanımlandığı satırda iken “Ctrl+Shift+C”
tuşlarına basarak, aşağıdaki prosedürün Delphi tarafından otomatik olarak
oluşturulmasını sağlayın.
HATA YAKALAMA
Üçüncü adımda hata oluştuğu anda işleyecek olan kodu bu prosedür içerisine
yazmalısınız. Biz şimdilik aşağıdaki kod satırlarını ekliyoruz.
HATA YAKALAMA
Dördüncü adımda, hata oluştuğu zaman yukarıda oluşturulan prosedürün
işletilmesi gerektiğini belirtmeliyiz. Bu iş için en uygun yordamın “OnCreate”
olduğunu düşünüyorum.
HATA YAKALAMA
Artık programınızı çalıştırabilirsiniz. Programınızda oluşan tüm hatalar
“yakala” isimli prosedürde belirtilen kodları işletecektir. Tüm kod aşağıda
verilmiştir.
Önemli Uyarı: Bir uygulamada hem lokal hem de global hata yakalama kodları
kullanıldıysa, lokal hata yakalama komutlarının önceliğinin olduğunu
bilmelisiniz. Yani lokal hata yakalama komutlarıyla yakalanan bir hata mesajı,
global hata yakalama komutlarına yakalanmaz.

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Ite

  • 2. MATEMATİKSEL İŞLEMLER Tam sayılarla işlem yapabilmemiz için “integer” değişkenini, Reel sayılarla işlem yapabilmemiz için “real” değişkenini tanımlamamız gerekiyor. Delphi XE5 programında matematiksel işlemler yapmak için sayısal değişkenler kullanacağız.
  • 3. Tam Sayılarda Toplama İşlemi: Toplama işlemi yapmadan önce formumuza iki adet edit ve bir adet buton ekleriz. StrToFloat(); => String tipi Float tipe dönüştürür (Reel sayılar için.) FloatToStr(); => Float tipi String tipe dönüştürür (Reel sayılar için.) StrToInt(); => String tipi Integer tipe dönüştürür (Tam sayılar için.) IntToStr(); => Integer tipi String tipe dönüştürür (Tam sayılar için.) Toplama işlemi “+” operatörü ile yapılır. MATEMATİKSEL İŞLEMLER
  • 4. KODLAR YAZILDIKTAN SONRA SHIFT+CTRL+F9 TUŞLARINA AYNI ANDA BASILARAK IŞLEM YAPTIRILIR. MATEMATİKSEL İŞLEMLER
  • 5. REEL SAYILARDA TOPLAMA İŞLEMI: MATEMATİKSEL İŞLEMLER
  • 6. KODLAR YAZILDIKTAN SONRA SHIFT+CTRL+F9 TUŞLARINA AYNI ANDA BASILARAK IŞLEM YAPTIRILIR. MATEMATİKSEL İŞLEMLER
  • 7. Reel sayılarda toplama yapalım ama sonucu yazdırırken yuvarlayıp tam sayı olarak yazdıralım; Round(); => Reel sayıyı (Real) Tam Sayı (Integer) yapar (yuvarlar.) MATEMATİKSEL İŞLEMLER
  • 8. Kodlar yazıldıktan sonra shift+ctrl+F9 tuşlarına aynı anda basılarak işlem yaptırılır. MATEMATİKSEL İŞLEMLER
  • 9. Tam Sayılarda Çıkarma İşlemi: Çıkarma işlemi “-” operatörü ile yapılır. MATEMATİKSEL İŞLEMLER
  • 10. Kodlar yazıldıktan sonra shift + ctrl +F9 tuşlarına aynı anda basılarak işlem yaptırılır. MATEMATİKSEL İŞLEMLER
  • 11. Tam Sayılarda Çarpma İşlemi: Çarpma işlemi “*” operatörü ile yapılır. MATEMATİKSEL İŞLEMLER
  • 12. Kodlar yazıldıktan sonra shift+ctrl+F9 tuşlarına aynı anda basılarak işlem yaptırılır. MATEMATİKSEL İŞLEMLER
  • 13. Tam Sayılarda Bölme İşlemi: Bölme işlemi “/” operatörü ile yapılır. Bölme işlemi yapılırken sonuç değişkeni reel olmak zorundadır. Kalansız bölme için “div” komutunu kullanabiliriz. Kalansız bölme yapılırken sonuç değişkeni Reel olmak zorunda değildir! MATEMATİKSEL İŞLEMLER
  • 14. Kodlar yazıldıktan sonra shift+ctrl+F9 tuşlarına aynı anda basılarak işlem yaptırılır. MATEMATİKSEL İŞLEMLER
  • 15. STRİNG METODLAR CompareStr(metin1,metin2) Tanımlama: function CompareStr(const S1, S2: string): Integer; Birinci ve ikinci parametre ile girilen metinlerin eşit olup olmadıklarını kontrol edebilen bir fonksiyondur. İkinci metnin içerisinde birinci metni arar, şayet bulursa negatif, bulamazsa pozitif, ikisi aynı ise sıfır değerini döndürür.
  • 16. STRİNG METODLAR Concat(metin1,metin2................metinn) Tanımlama: function Concat(s1 [, s2,..., sn]: string): string; Parametre ile belirtilen değişken değerlerini yan yana yazdırmak için kullanılan bir fonksiyondur. Şayet araya boşluk bırakılması istenirse, o zaman kodu aşağıdaki şekilde değiştirmelisiniz.
  • 17. STRİNG METODLAR Copy(metin,index,adet) Tanımlama:function Copy(S; Index, Count: Integer): string; function Copy(S; Index, Count: Integer): array; Birinci parametreyle girilen metnin içeriğinden, ikinci parametrede belirtilen karakterden sonra, üçüncü parametreyle belirtilen adet kadar karakteri söküp alabilen bir fonksiyondur. Fonksiyondan geriye dönen değer yine bir AnsiString veri olacağı için sonuç herhangi bir tip dönüştürme işlemine gerek kalmadan direkt olarak yazdırılabilir. Aşağıda bu fonksiyona ait örneklendirme yapılmıştır. Dikkatlice inceleyiniz.
  • 18. STRİNG METODLAR Delete (metin,index,adet) Tanımlama: procedure Delete(var S: string; Index, Count:Integer); Birinci parametre ile girilen metin değerinden, ikinci parametre ile girilen karakterden sonra, üçüncü parametreyle girilen sayı kadar karakteri söküp atan bir prosedürdür. Dikkat edeceğiniz husus, yapılan değişikliğin metin isimli parametrenin değerine yansıyacağıdır.
  • 19. STRİNG METODLAR DupeString (metin,adet) Tanımlama: function DupeString(const AText: string; ACount: Integer): string; Birinci parametreyle girilen metni, ikinci parametreyle girilen adet kadar yan yana yazmak için kullanılan bir fonksiyondur.
  • 20. STRİNG METODLAR Insert (eklenecek_metin,metin,başlangıç_karakteri) Tanımlama: procedure Insert (Source: string; var S: string; Index: Integer); Birinci parametreyle girilen metni, ikinci parametreyle girilen metne, üçüncü parametrede belirtilen karakterden sonra eklemek için kullanılan bir prosedürdür. Burada dikkat edeceğiniz husus, yapılan değişikliğin ikinci parametre değerine yansıyacağıdır.
  • 21. STRİNG METODLAR LeftBStr(metin,adet) Tanımlama:function LeftBStr(const AText: AnsiString; const AByteCount: Integer): AnsiString; Birinci parametreyle belirtilen metinden, ikinci parametreyle belirtilen adet kadar karakteri söküp alabilen bir fonksiyondur. Daha öncede aynı işlemi yapan fonksiyonu göstermiştik. Başında “Ansi” olan fonksiyon ve prosedürlerin kullanabileceği karakterler daha fazladır. Ama tercih tamamen sizlere kalmıştır. İstediğiniz fonksiyonu veya prosedürü kullanabilirsiniz.
  • 22. STRİNG METODLAR Length(metin) Tanımlama: function Length(S): Integer; Parametre ile belirtilen metnin kaç karakterden oluştuğunu hesaplayabilmek için kullanılan bir fonksiyondur. Fonksiyondan geriye dönen değer tam sayı tipli olacağı için, başlıkta yazdırmak tip dönüştürme fonksiyonu sayesinde yapılabilmektedir.
  • 23. STRİNG METODLAR LowerCase(metin) Tanımlama: function LowerCase(const S: string): string; AnsiLowerCase (daha önce izah edildi) fonksiyonunun yaptığı işi yapar (Ansi kütüphanesinin daha zengin olduğunu hatırlatalım). Parametre olarak girilen metni küçük harfe dönüştürmek için kullanılır.
  • 24. STRİNG METODLAR MidStr(metin,başlangıç,adet) Tanımlama:function MidStr(const AText: AnsiString; const AStart, ACount: Integer): AnsiString; overload; function MidStr(const AText: WideString; const AStart, ACount: Integer): WideString; overload; Birinci parametre ile belirtilen metinden, ikinci parametre ile girilen başlangıç karakterinden başlayarak, üçüncü parametre ile girilen adet kadar karakteri parçalayıp almak için kullanılan bir fonksiyondur.
  • 25. STRİNG METODLAR Pos(metin1,metin2) Tanımlama: function Pos(Substr: string; S: string): Integer; Birinci parametre ile girilen değer ile ikinci parametre ile girilen değeri karşılaştırmak için kullanılan bir fonksiyondur. Şayet iki parametre farklı değerler içeriyorsa (içinde bulunmuyor ise) sonuç “0” olacaktır.
  • 26. STRİNG METODLAR RightStr(metin,sağdan_kaç_karakter) Tanımlama:function RightStr(const AText: AnsiString; const ACount: Integer): AnsiString; overload; function RightStr(const AText: WideString; const ACount: Integer): WideString; overload; Birinci parametre ile belirtilen metnin sonundan, ikinci parametre ile belirtilen adet kadar karakteri söküp almak için kullanılan fonksiyondur (AnsiRightStr fonksiyonunun yaptığı işi yapar).
  • 27. STRİNG METODLAR SetLength(metin,soldan_kaç_karakter) Tanımlama: procedure SetLength(var S; NewLength: Integer); Birinci parametre ile belirtilen metinden, ikinci parametre ile belirtilen adet kadar karakteri söküp alabilen bir prosedürdür.
  • 28. STRİNG METODLAR SetString(metin,katar,soldan_kaç_karakter) Tanımlama: procedure SetString(var s: string; buffer: PChar; len: Integer); Birinci parametre ile belirtilen metne, ikinci parametre ile belirtilen katarın, üçüncü parametre ile belirtilen adet kadar karakterini (soldan) aktarabilen bir prosedürdür.
  • 29. STRİNG METODLAR Str(sayi,metin) Tanımlama: procedure Str(X [: Width [: Decimals ]]; var S); Birinci parametre ile girilen sayıyı (ondalıklı veya tam sayı), ikinci parametre ile girilen metne aktarmak için kullanılan bir prosedürdür. İlk parametre parasal tipte bir değişken de olabilir.
  • 30. STRİNG METODLAR StringOfChar(karakter,adet) Tanımlama: function StringOfChar(Ch: Char; Count: Integer): string; Birinci parametre ile belirtilen karakteri, ikinci parametre ile belirtilen adet kadar yan yana yazdırmak için kullanılan bir fonksiyondur.
  • 31. STRİNG METODLAR StringReplace(metin,değişece_bölüm,yeni_bölüm,seçenek) Tanımlama: function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string; Birinci parametre ile verilen metin içerisinde, ikinci parametre ile verilen kısmı, üçüncü parametre ile verilen içerikle değiştirmek için kullanılan bir fonksiyondur.
  • 32. STRİNG METODLAR StuffString(metin,başlangıç,uzunluk,yeni_metin) Tanımlama: function StuffString(const AText: string; AStart, ALength: Cardinal; const ASubText: string): string; StringReplace fonksiyonuna benzer iş görmektedir. Aralarındaki fark, değiştirilecek olan kısmın burada karakter sayısı ile belirlenmesidir. Aşağıda bu fonksiyon örneklendirilmiştir.
  • 33. STRİNG METODLAR Trim(metin) Tanımlama: function Trim(const S: string): string; overload; function Trim(const S: WideString): WideString; overload; Parametre ile girilen metnin sol ve sağındaki tüm boşlukları atmak için kullanılan bir fonksiyondur. Bilhassa yanlışlıkla space tuşuna basılması durumunda oluşabilecek olan hataları engellemek amacıyla kullanılan bir fonksiyondur. Bu fonksiyondan dolayı kelimeler arasında bulunan boşluklar hiç bir değişikliğe uğramazlar (aynen kalırlar).
  • 34. STRİNG METODLAR TrimLeft(metin) Tanımlama: function TrimLeft(const S: string): string; overload; function TrimLeft(const S: WideString): WideString; overload; Parametre ile girilen metnin sol tarafında bulunan boşlukları atmak için kullanılan fonksiyondur. Son kısımda bulunan boşluklara dokunmaz.
  • 35. STRİNG METODLAR TrimRight(metin) Tanımlama: function TrimRight(const S: string): string; overload; function TrimRight(const S: WideString): WideString; overload; Parametre ile girilen metnin sağ tarafında bulunan boşlukları atmak için kullanılan fonksiyondur. Başlangıç kısımda bulunan boşluklara dokunmaz.
  • 36. STRİNG METODLAR UpperCase(metin) Tanımlama: function UpperCase(const S: string): string; Parametre ile girilen metindeki karakterlerin tamamını büyük harfe çevirmek için kullanılan fonksiyondur. Şayet metin içerisinde büyük harfe rastlarsa onlara dokunmayacaktır. Daha önce örneklendirildiği için tekrar değinilmeyecektir.
  • 37. STRİNG METODLAR WrapText(metin,işlenv,alta_indirecek_karakterler,maxkarakter) Tanımlama:function WrapText(const Line, BreakStr: string; nBreakChars: TSysCharSet; MaxCol: Integer):string; overload; function WrapText(const Line, MaxCol: Integer = 45):string; overload; Birinci parametrede belirleyeceğiniz metni, üçüncü parametrede belirleyeceğiniz karakterlerden herhangi bir tanesine rastlaması durumunda alt satıra indirmek için kullanılan bir fonksiyondur. Aşağıdaki örneği dikkatlice inceleyiniz.
  • 38. STRİNG METODLAR Chr(sayi) Tanımlama: function Chr(X: Byte): Char; Parametre ile girilen Ascii (0-255 arası) değerinin karakter karşılığını bulmak için kullanılan bir fonksiyondur.
  • 39. STRİNG METODLAR Ord(karakter) Tanımlama: function Ord(X); Parametre ile girilen karakterin ascii değerini hesaplayan bir fonksiyondur. Fonksiyondan tam sayı tipli bir değer döneceği için yazdırmak için IntToStr tip dönüştürme fonksiyonunu kullanmalısınız. Fonksiyonu örneklendirecek olursak; Edit kutusuna girilecek olan karakterin Ascii karşılığını başlıkta yazdırmak için aşağıdaki gibi “KeyPress” yordamına kod yazmalısınız.
  • 40. STRİNG METODLAR Val(metin,değişken,hata) Tanımlama: procedure Val(S; var V; var Code: Integer); Birinci parametreyle girilen içeriğin soldan matematiksel anlamı olan kısmını ikinci parametreye aktarır. Prosedür sayesinde ikinci parametrenin değeri değişecektir.
  • 41. STRİNG METODLAR StrToInt(metin) Tanımlama: function StrToInt(const S: string): Integer; String içerikli değerleri tam sayıya çevirmek için kullanılan bir fonksiyondur. Sayısal içeriğe çevrilemeyen bir karaktere rastlarsa hata üretecektir.
  • 42. STRİNG METODLAR StrToIntDef(metin,varsayılan_değer) Tanımlama: function StrToIntDef(const S: string; const Default: Integer): Integer; StrToInt fonksiyonu ile aynı işi yapar. Aralarındaki tek fark şayet sayıya dönüştürülemeyecek bir değer gönderilirse, bu durumda fonksiyon hata üretmemekte, ikinci parametre ile belirtilen değeri işleme sokmaktadır. Farkı anlamanız için aşağıdaki iki örneği dikkatlice inceleyiniz. Üstteki kodlamada metin değişkeninin içeriğinde “A” karakteri (sayıya çevrilemez) bulunduğu için, değer isimli değişkenin içeriği ikinci parametre ile girilen “0” değerine eşit olacaktır. Bu aktarmayı StrToInt fonksiyonu ile yaparsanız uygulamanız size hata mesajı verecektir.
  • 43. STRİNG METODLAR StrToFloat(metin) Tanımlama:function StrToFloat(const S: string): Extended; overload; function StrToFloat(const S: string; const FormatSettings: TFormatSettings): Extended; overload; Parametre ile girilen metni ondalıklı sayıya çevirmek için kullanılan bir fonksiyondur. Ondalıklı sayıya çevrilemeyecek bir karaktere rastlarsa uygulamanız hata mesajı verecektir.
  • 44. STRİNG METODLAR IntToStr(sayi)-FloatToStr(ondalıklı_sayı) Tanımlama:function IntToStr(Value: Integer): string; overload; function IntToStr(Value: Int64): string; overload; Parametre olarak girilen tam sayıyı stringe çevirmek için kullanılan fonksiyondur. Bilhassa kullanıcının görmesini istediğiniz içerikleri stringe çevirmek zorunda kalacaksınız. IntToStr(sayi)-FloatToStr(ondalıklı_sayı) Tanımlama:function IntToStr(Value: Integer): string; overload; function IntToStr(Value: Int64): string; overload; Parametre olarak girilen tam sayıyı stringe çevirmek için kullanılan fonksiyondur. Bilhassa kullanıcının görmesini istediğiniz içerikleri stringe çevirmek zorunda kalacaksınız. Parametre olarak girilen ondalıklı sayıyı string içeriğe çevirmek için kullanılan fonksiyondur.Diğer fonksiyonlarda yeterince uygulama yapıldığı için tekrar örnek verilmeyecektir.
  • 45. STRİNG METODLAR FormatFloat(format_tipi,sayi) Tanımlama: function FormatFloat(const Format: string; Value: Extended): string; overload; function FormatFloat(const Format: string; Value: Extended; const FormatSettings: TFormatSettings): string; overload; İkinci parametre ile girilen ondalıklı sayıya, birinci parametre ile belirlenen formatı uygulayan fonksiyondur. Birinci parametre için belirleyebileceğiniz format tipleri aşağıda tablo halinde verilmiştir. Şimdi fonksiyona ait bir örnek yapalım. Aşağıdaki gibi bir form tasarımı oluşturun.
  • 46. HATA YAKALAMA Delphi’de Oluşabilecek İllegal Durumları Çözmek: Yazmış olduğunuz kodlar içerisinde tahmin edebildiğiniz veya edemediğiniz,hata oluşturmaya müsait bir çok durum olabilir. Bu hatalardan bir kısmını bildiğimiz kodlarla engellemek mümkün olmakla beraber, diğerleri için bu mümkün olmayabilir (Mesela Edit kutusu içerisindeki verinin sayısal olup olmadığını daha başka yollarla kontrol etmek mümkün olabilir). Bu yüzden bu tip durumlarda, aşağıda göstereceğim lokal ve genel hata yakalama yöntemlerinden bir tanesini (veya ikisini de) kullanmalısınız.
  • 47. HATA YAKALAMA Lokal Hata Yakalama: Lokal hata yakalama tek bir prosedür içerisinde oluşabilecek hataları programa bildirme amaçlı kullanılan bir yöntemdir. Aşağıda seçenekleri incelenmektedir.
  • 48. HATA YAKALAMA Aşağıdaki gibi bir kodunuzun var olduğunu düşünün. Bu kodda Edit içerisine girilen içerik tamsayıya çevrilerek, tamsayı tipli bir değişkene aktarılmaktadır. Burada girilen değer içerisinde sayısal olmayan bir karakterin olması programın kırılmasına (Bir programın kırılması çökmesi demek değildir. Çalışmaya aynen devam edebilirsiniz. Ama hiç hoş olmayan bir durumun olduğu da meydandadır.) sebep olacaktır.
  • 50. HATA YAKALAMA Aşağıdaki örnekte Edit kontrolünün içerisine sayısal içerik girilene kadar kontrolü kaybetmemesi sağlanmaktadır.
  • 51. HATA YAKALAMA Try-Finally-End: Hata olsa da olmasa da işletilecek olan kod satırlarınız varsa, bunları “Finally” bloğuna yazmalısınız. Yani Finally bloğu hata olsa da olmasa d a program tarafından işletilecektir. Yapı aşağıda verilmiştir. Try //Hataya müsait Kodlar Buraya Yazılacak Finally begin //Hata olsada olmasada işleyecek olan kod bloğu end; end; Genellikle yaratılmış olan objeleri bellekten atma işlemi bu blokta yapılır. Çünkü hata olsa da olmasa da nesnelerin bellekte kalmaları istenmez.
  • 52. HATA YAKALAMA Genel Hata Yakalama: Tüm uygulamanın kullanacağı genel hata yakalama işlemi uygulayacaksanız, (Windows un yapmış olduğu “Program geçersiz bir işlem yürüttü kapatılacak” gibi) aşağıdaki gibi hata olduğu zaman işleyecek olan bir prosedür tanımlamalısınız. Ardından hata olduğu zaman işletilmesi gerektiğini programa bildirmeniz gerekecektir. Aşağıda bu işlemi adım adım izah edeceğim, lütfen dikkatlice uygulayınız. Birinci adımda, programınızın Unit bölümüne geçerek “yakala” ismindeki prosedürü tanımlayın.
  • 53. HATA YAKALAMA İkinci adımda imleç prosedürün tanımlandığı satırda iken “Ctrl+Shift+C” tuşlarına basarak, aşağıdaki prosedürün Delphi tarafından otomatik olarak oluşturulmasını sağlayın.
  • 54. HATA YAKALAMA Üçüncü adımda hata oluştuğu anda işleyecek olan kodu bu prosedür içerisine yazmalısınız. Biz şimdilik aşağıdaki kod satırlarını ekliyoruz.
  • 55. HATA YAKALAMA Dördüncü adımda, hata oluştuğu zaman yukarıda oluşturulan prosedürün işletilmesi gerektiğini belirtmeliyiz. Bu iş için en uygun yordamın “OnCreate” olduğunu düşünüyorum.
  • 56. HATA YAKALAMA Artık programınızı çalıştırabilirsiniz. Programınızda oluşan tüm hatalar “yakala” isimli prosedürde belirtilen kodları işletecektir. Tüm kod aşağıda verilmiştir. Önemli Uyarı: Bir uygulamada hem lokal hem de global hata yakalama kodları kullanıldıysa, lokal hata yakalama komutlarının önceliğinin olduğunu bilmelisiniz. Yani lokal hata yakalama komutlarıyla yakalanan bir hata mesajı, global hata yakalama komutlarına yakalanmaz.