For Sayaç:=Başlangıçdeğeri to BitişDeğeri do
begin
komutlar;
end;
Burada sayaç değişkeni tamsayıya çevrilebilen tipte (integer, LongInt, ShortInt, Byte , Word, Boolean , Char ) bir değişken olması gerekir. For döngüsü Sayaç 'ın BaşlangıçDeğeri'nden başlayarak BitişDeğeri 'ne kadar sayacı birer artırarak blok içindeki komutları çalıştırır. BaşlangıçDeğeri , BitişDeğeri'nden küçükse döngüye hiç girilmeyecektir.
Sayaç'ın artarak değil azalarak çalışması için to yerine downto deyimi kullanılır.
For Sayaç:=BaşlangıçDeğeri downto BitişDeğeri do
begin
komutlar;
end;
BaşlangıçDeğeri , BitişDeğeri'nden büyükse döngüye hiç girilmeyecektir.
ÖRNEK:
100 Kişinin ismini sormamız gerektiğini farz edelim. Bu durumda
var
ad:array [1..100] of String;
begin
ad[1]:InputBox('Ad girişi','1. kişinin adı',' ');
ad[2]:InputBox('Ad Girişi','2. kişinin Adı',' ');
........
end;
Yukarıdaki gibi 100 satırlık kod yazmak yerine 1 den 100 e kadar bir döngü kurarak aynı işi çok kolay yapabiliriz.
var
ad:array [1..100] of String;
i:integer;
begin
For i:=1 to 100 do
ad[i]:=InputBox('Ad Girişi',IntToStr(i) + '. kişinin adı',' ');
end;
Yukarıdaki örnekte for döngüsünün altında bir satırlık kod yazdığımız için Begin-End bloğunu kullanmadık.
Bir ComboBox içine belli aralıklarda sayı koyarak Memo içerisinde karekterin büyüyüp küçülmesini sağlayacağız.
Procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
ComboBox1.Items:=Screen.Fonts; // 1.ComboBox'a ekran fontlarını ekle.
For i:= 8 to 30 do // 2. ComboBox'a font büyüklüklerini ekle.
ComboBox2.Items.Add(IntToStr(i));
ComboBox1.Text:=Memo1.font.Name; // Memo kontrolünün Font adını kutuda göster.
ComboBox2.Text:=IntToStr(Memo1.font.Size); // Memo kontrolünün fontSize'ini göster.
ComboBox1.Sorted:=true;
end;
ComboBox2Change // Memo1.Font.Size:=StrToInt(ComboBox2.Text);
Combobox1Change // Memo1.Font.Name:=ComboBox1.Text;