Canias ERP Troia Eğitimleri 35 – Inheritence

Troia eğitimlerimize yazılımın ve özellikle Nesne Tabanlı Programlamanın en önemli konularından biri olan Inherit olayı ile devam ediyoruz.

Inherit kalıtım demektir. Kalıtımın temel çıkış noktası var olan özellikleri yeni nesile aktarmak demektir. Yazılımda da bu bu şekilde kullanılır.

Daha önceki derslerimizde EDUPERSONAL isimli projemizi yapmıştık. Şimdi yeni bir uygulama yapacağız. Temel olarak EDUPEROSNAL diyalogunun üzerine eklenecek verilerden oluşacak. Böyle bir durumda diyalog sıfırdan baştan yapılabilir. Ancak elde var olan diyalogdan inherit almak daha mantıklıdır.

Yeni Diyalogumuzun ismi EDUHRCD001 olacak.

NEW Dialog diyoruz. Daha sonra Hotline seçiyoruz. Kendi dialogumuzun ismini veriyoruz. Inherit alıcamız dialog Base(Temel – Taban) Dialog kısmından alacağız. Search kısmına tıklayıp Base alınacak dialog bulunur seçilir. Ok denir.

Görüldüğü gibi aynı diyalogumuz oluştu.

Şimdi biraz detay bakalım.

Base Dialogdan var olan bir Komponen üzerine sağ tıklayarak kodlarına erişilebilir. Tıkladığımızda aşağıdaki gibi bir durum ile karşılaşırız. Sadece Click tarafına tıklarsak var olan kodlara erişiriz.

Burada kodlar sadece okunabilir yeni kod üzerine eklenemez. Yeni bir kodlama ekleyeceksek aşağıdaki gibi yapacağız.

Yeni bir kod eklemek istiyorsak, yada bu metoda sıfırdan kod yazmak istiyorsak aşağıdaki mavi oka tıklıyoruz.

 

Tıkladığımızda şöyle bir ekran karşılayacak.

 

SUPER Metodu()

SUPER() metodu güzel düşünülmüş ve gerçekten ismi gibi süper bir metot. SUPER() içinde base alınan metodun kodlarını taşır. Yani biz şöyle bir şey yapmak isteyebiliriz. Var olan kodların devamına yada üstüne yeni kodlar yazmak isteyebiliriz. Böyle bir durumda var olan kodlara normal şekilde müdahale edemediğimiz için SUPER() metodunu olduğu gibi kullanırız.

Eski kodlar yeni kodlamanın neresinde olunması isteniyorsa SUPER() metodu oraya yazılır.

Bazen örneğin burada SEARCH metoduna sıfırdan yeni kodlar yazılmak istenebilir. Böyle bir durumda SUPER() metodunu sileriz. Yeni kodlarımızı yazabiliriz.

Kodlar okunurken neyi dikkate alır Runner? Inherit alınmış bir kodlama var ise base ezilir yani onu görmez Runner Inherit olarak yazılan yeni metod artık asıl kodlardır. Runner bunu okuyacaktır. 

Örneğin bir takım çalışması yapıyorsunuz bir takım arkadaşınız bir kodlama içinde SUPER() metodunu kullanmış. Sizde kodlama yaparken SUPER() metodunun içindeki kodları görmeye ihtiyaç duydunuz bunu gerçekleştirmek için yapmanız gereken SUPER() metodu üzerine imleci focuslayıp F2 ye basmanız yeterli gelecektir.

Inherit alınmış bir diyalog üzerinde var olan komponentler üzerinde normal şekilde değişiklik yapamazsınız.

Üzerinden değişiklik yapabilmek için şunu yapmanız gerekir. Komponent üzerine sağ tıklayıp Inherit seçeneği seçilmelidir.

Bunu yaptığımız anda Komponent’in çevresi sarı renkle çerçevelenir. Artık istenildiği gibi komponent üzerinde oynanabilir.

 

Şimdi şöyle bir şey olsun yeni dialogumuz üzerinde Base’den gelen komponentlerle oynadık. yerlerini değiştirdik. Yeni kodlamalar yaptık. Ama baktık ki yanlış yapmışız. Sistemi geri döndürmek için yapmanız gereken şey şudur. Değişiklik yaptığınız komponentleri silin. Diyaloğu kaydedin. Sonra kapatın diyalogları yeniden açın. Her şeyin eski düzende yerli yerine geldiğiniz görürsünüz.

Bir örnek gösterelim.

Aynı şekilde bir Sınıfda Inherit alınarak üzerinde çalışılabilir.

Sistemde hiç bir farklılık yok, bir diyalogdan inherit almak ile aynı sistemdir.

Bir konuyu daha gösterip yazımızı bitirelim.

Bir sonraki yazımda görüşmek üzere.

 

Facebook Sayfamizdan Bizleri Takip Edebilirsiniz
Murat Bilginer

Industryolog Akademi Founder – Endüstri Mühendisi
Canias ERP Troia Geliştiricisi & Yazılım Uzmanı
7 Yıldır bildiğini paylaşmak için çabalayan bir blogger.

http://muratbilginer.net/