Sayfa: [1]   Aşağı git
  Bu Konuyu Gönder  |  Yazdır  
Gönderen Konu: Bir Object Pascal eklentisi: "For-in-do" döngüsü  (Okunma Sayısı 702 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Emre
Global Moderatör
*****

Rep: +6/-0
Offline Offline

Mesaj Sayısı: 74



« : 20 Haziran 2006 21:47:21 »

Başlangıçta belirteyim; bu özellik Delphi 2005 ile gelen ve Borland'ın Object Pascal diline eklemiş olduğu yeni ve kullanışlı bir özelliktir:

Genellikle, TList sınıfından türemiş bileşenlerde kullanımı tavsiye edilen ve bileşenin her bir elementine gönderme yapabileceğimiz bir kolaylık sağlar, ayrıca string ifadelerin her bir karakterine(elementine) de gönderme yapılabilmektedir:

Örneğin eski  Delphi sürümlerinde (Delphi 2005 öncesi) yazdığımız şu kodu düşünelim:
Kod:
procedure TForm3.Button4Click(Sender: TObject);
var
  i: Integer;
begin
  Memo1.Clear;
  for i:=0 to ListBox1.Items.Count-1 do
    Memo1.Lines.Add(ListBox1.Items[i]);
end;

Aynı kodu for-in-do döngüsüyle şöyle yazabiliriz:
Kod:
procedure TForm3.Button2Click(Sender: TObject);
var
  S: String; 
begin
  Memo1.Clear;
  for S in ListBox1.Items do
    Memo1.Lines.Add(S);
end;

İçiçe for döngüsünde ve string ifadelerdeki kullanımına da bir örnek vermek istiyorum:
Kod:
procedure TForm3.Button2Click(Sender: TObject);
var
  S: String;
  C: Char;
  Spaces: Integer;
begin
  Spaces := 0;
  Memo1.Clear;
  for S in ListBox1.Items do
  begin
    Memo1.Lines.Add(S);
    for C in S do //S ifadesinin sırasıyla tüm karakterleri için
      if C = ' ' then Inc(Spaces);
  end;
end;
« Son Düzenleme: 20 Haziran 2006 21:54:12 Gönderen: Emre » Logged
Delphi Kitabı
*****

Sipariş ver..
Cvp: Bir Object Pascal eklentisi: "For-in-do" döngüsü
« : 20 Haziran 2006 21:47:21 »

Fatih
Kurucu Üye
*****

Rep: +39/-10
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 2.119



WWW
« Cevapla #1 : 21 Haziran 2006 09:45:35 »

 C#'ta diziler için buna benzer bir döngüyü görünce Borland'a kızmıştım. Yardım dökümanlarını karıştırınca kendime kızmıştım Smile
Güzel bir yenilikti Alkış
Logged

Yoksa siz hala kitabımı okumadınız mı Smile
Emre
Global Moderatör
*****

Rep: +6/-0
Offline Offline

Mesaj Sayısı: 74



« Cevapla #2 : 21 Haziran 2006 11:30:43 »

Kesinlikle öyle  Very Happy
Logged
Sayfa: [1]   Yukarı git
  Bu Konuyu Gönder  |  Yazdır  
 
Gitmek istediğiniz yer:  

TinyPortal v1.0.5 beta 1© Bloc