hangi end; hangi begin nin

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kayipgemi
Üye
Mesajlar: 88
Kayıt: 14 Kas 2005 03:07

hangi end; hangi begin nin

Mesaj gönderen kayipgemi » 05 Ara 2007 09:32

S.A. Arkadaslar, insallah hepiniz de iyisinizdir.
bir sorum olacak yardımcı olabilirseniz sevinirim bir begin ve end; bloğunu düşünün bu bloklar arasında kodlarımız var ama bu kodlar o kadar genişki iç içe if ile gelen ve sorgu sonucuna baglı bir takım bloklarda kendimiz ekliyoruz

Kod: Tümünü seç

 begin
if  (...  = '') or
    (...  = '') or
    (...  = '') or
    (...  = '') then
    begin
    .......
    end
    else
    begin
      if (... = 'Evet') and
         (... = 'Hayır')then
      begin
      ....
      ....
      end
      else
      begin

        if ..... then
        begin
        end;
      end;
    end;
end;
bunun gibi sormak istediğim hani .net , c# editöründe görmüşşüsünüzdür
{
} parantezlerin üzerine geldiğiniz zaman hangisi hangisine baglı hemen işaretliyor boylece başlangıc ve bitişleri karıştırmıyorsunuz .. ben de diyorumki aşağıdaki end; lerin herhangi birinin üzerine geldiğimizde hangi begin e bağlı olduğunu gösteren bir özellik delphi 7 de varmıdır.?

Allah kolaylıklar versin

bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 09:32
Konum: istanbul

Mesaj gönderen bgoktas » 05 Ara 2007 09:55

Castalia adında bir tool var, ama sanırım paralı. Delphi 7 'ye ekleniyor gayet kullanışlı bir araç.

ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 09:13

Mesaj gönderen ikutluay » 05 Ara 2007 12:26

Ek olsun;)

ben şahsen endlerin sonuna not yazarım blok yazacaksamda

hemen endi koyar sonra kodu yazarım.

bu hatayı önlüyor. yeni arkadaşlara tavsiye ederim bu yöntemi;

Kod: Tümünü seç

end; //while
end; // dongü 1
gibi

ama dediğiniz renklendirme olayının pratikliğinede katılıyorum.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog

Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 30 Eyl 2007 11:02
Konum: Ankara

Mesaj gönderen Battosai » 05 Ara 2007 12:58

ikutluay'ın dediği gibi begin den sonra end; yerleştir en iyi yöntem dir...Delphi 2007 de güzel bir özellik var begin den sonra alt satırlara geçerken kendisi tamamlıyor bloğu ayrıca arada başka begin end ler olsada ayarını yapıyor...Yavaş yavaş geçmek lazım 2007 sürümüne ben geçtim ama hala 7 sürümüyle de çalışıyorum alışkanlık işte.Ama 1 gb dan aşağı ram olmasını tavsiye etmem baya zorluyor benim 512 ram ile....

Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 09:11

Mesaj gönderen naile » 05 Ara 2007 01:50

Programcı olarak her ne kadar not bırakarak bu sorunu bir şekilde atlatsakta c# daki rahatlığa kesinlikle uyamaz. Geçen ay c# a bakmaya başladım ve şahsen .neti delphiden daha başarılı buldum ama tabi sonuçta kullandığım delphi 7, vs ise 2005. Delphi 2005 de de belki bu kolaylık vardır ama @bgoktasın bahsettiği tooldan başka çok bir şansınız yok sanırım eski versiyon delphiler için.

kayipgemi
Üye
Mesajlar: 88
Kayıt: 14 Kas 2005 03:07

Mesaj gönderen kayipgemi » 05 Ara 2007 02:10

arkadaşlar yorumlarınız için teşekkür ederim, arkadasımızın dediği programı indirdim ve tes ettim küçük projeler için bır sıkıntı yok ama çalıştığınız büyük birproje ve yaklasık 80 den fazla formunuz varsa program projeji bayağı bir kastırıyor ve tab satırılarını bozuyor, sanırım delphi 2007 e geçene kadar satır sonlarına not ekleyerek devam edeceğim .. dediğiniz gibi, teşekkür ederim sağolun Allah kolaylık versin

ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 05:46
Konum: Ankara

Mesaj gönderen ulu coder » 05 Ara 2007 02:26

Kolay yolu şudur ki her end kendisinden önce ve end'i bulunmayan ilk begin'indir. Sayarak gidebilirsiniz.

Daha önce de söylendiği gibi en güzeli begin yazar yazmaz altına end'i yapıştırıp açıklamasını yazmak, ama bence önemli olan bir diğer nokta da kod bloklarını (prosedür-fonksiyon) mümkün olduğunca parçalayarak begin-end sayısını ve içindeki satır sayısını düşürmektir.

Kolay gelsin.

Kullanıcı avatarı
tanerileri
Üye
Mesajlar: 55
Kayıt: 06 Tem 2007 10:30

Ben şu eklentiyi kullanıyorum .

Mesaj gönderen tanerileri » 05 Ara 2007 02:55

http://www.aew.wur.nl/uk/delforexp/

bu siteden indirip deneyebilirsin.

iyi çalışmalar.

bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 09:32
Konum: istanbul

Mesaj gönderen bgoktas » 05 Ara 2007 03:20

Castalia'nın options ayarlarından line wrap gibi bazı opsiyonlarını kapatabilirsiniz. Muhtemelen sorununuz çözülür.

Kullanıcı avatarı
csunguray
Üye
Mesajlar: 850
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Mesaj gönderen csunguray » 08 Ara 2007 11:02

Bence örnek olarak verilen kod gayet güzel. Hangi endin hangi begine ait olduğu gayet iyi görülebiliyor. Ben genelde iş karışmaya başlayınca end; in yanına end; // if falan filan gibi notlar düşmeye bşlarım. Yine de sadeleşmezse kodu alt prosedürlere bölerim. Size konuyla ilgili güzel bir sözü hatırlatmak istiyorum

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

Her programcı bilgisayarın anlayabileceği kodlar yazabilir. Sadece iyi programcılar insanların da anlayabileceği kodlar yazabilir.

Martin Fowler (http://martinfowler.com/)

İyi söz. Bunu imzama da yerleştireceğim.

Kolay gelsin.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)

akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 05:04
Konum: Antalya

Mesaj gönderen akdatilla » 08 Ara 2007 01:11

Delphi 7 editor özelliklerinden smarttab özelliğini aktif hale getirmenizi tavsiye ederim.
Bu özelliği açtığınızda tab tuşu bloklandırma işlemi için kolaylık sağlıyor bence.
Kullanımı:
her begin ifadesinden sonra bir kez enter tuşuna sonra bir kez tab tuşuna basın.
sonra blok içeriğini yazın.
blok sonunda (son komuttan sonra bir kez enter tuşuna basılarak yeni boş satırdayken) bir kez backspace tuşuna basarak end; komutu ile bloğu sonlandırın.

bence bu yöntem ile kod yazıldığında blok başları ile sonlarının karıştırılması yeteri kadar engellenmiş oluyor.

Not:Bu sistemi kullanırken insert modda çalışılmalıdır (not overwrite)

Kullanıcı avatarı
sunye
Üye
Mesajlar: 101
Kayıt: 24 Ağu 2004 03:49
Konum: izmir

Mesaj gönderen sunye » 09 Ara 2007 02:08

Bence en basiti kod yazar ken tab kurallarına dikkat etmektir asla karıştırmazsın.

Ör.

Kod: Tümünü seç

For i:=1 to 10 do begin //begin'i bilerek komutun sonuna ekliyorum ki okuması daha kolay olsun
    komut 1
    komut 2
    if a=b then begin
      komut 3
    else begin
      komut 4
    end;
    for x:=1 to 5 do begin
         if c=z then begin
            if z>r then begin
               komut 5
            end;
         end;
    end;
end;
bütün döngü ve şart başlangıçları (begin) ile bitişlerini (end) yukarıdan aşağıya aynı hizada yazarsanız yıllar sonra bile oturup kontrol etseniz asla şaşırmazsınız. Bu benim Pascal dilinden gelen alışkanlığım ve hala arada fantazi olsun diye programlarıma bakarken hiç şaşırmam.
Bildiğim tek şey, hiç bir şey bilmediğim.

Kullanıcı avatarı
selimr
Üye
Mesajlar: 554
Kayıt: 16 Eki 2003 01:07

Mesaj gönderen selimr » 09 Ara 2007 09:05

çok ilginç ya bu özellik delphide yokmu.. şaşırdım gerçekten..

lazarusta var;

çok gerekli olduğunda pas dosyalarını örnek olarak netepadd++ da düzenleyebilirsiniz.. orda bu özellik var..

ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 09:13

Mesaj gönderen ikutluay » 10 Ara 2007 06:58

@selim

delphiden kastın delphi 7 ise bu 2002 de çıktı. haliyle yoktu. delphi 2007 de ve bir çok sürümde zaten var. lazarusa gelince lazarus sürekli güncellenen bir proje. kıyaslamanda hata var sanki ?
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog

Cevapla