Bu yazımda en son yazdığım programı, en başından nasıl yazdığımı, anlatmaya çalışacağım. Öncelikle belirteyim ki, programcılığı sadece hobi olarak, amatörce yapıyorum. Bu yüzden yazdığım programdaki kodlar size son derece basit gelebilir, programda yüzlerce hata olabilir, ama elimden gelen budur.
Bir programın yazılması için önce ortada bir sorun olması gerekir. Yakın bir arkadaşım, dizilerini pek sevmesine rağmen, hafta içerleri işten güçten fırsat bulup televizyon seyredememekten şikayetçiydi. Eve bilgisayar ve internet alınca, kaçırdığı dizileri internetten indirip seyretmeye başladı. Takdir edersiniz ki, bilgisayar başında “tüneyip” dizi seyretmek pek keyifli olmuyor. Benim ön ayak olmamla, kendisine bir divx player aldık.İlk başlarda arkadaş halinden memnundu ama daha sonra bir sorun ortaya çıktı. Divx player’ların çoğu, uzun dosya isimlerini desteklemiyorlar. Amma velakin internetten indirilen dizilerin isimleri genellikle diziadi.bolum.46.uploader.avi şeklinde oluyor.

Dizilerin dvd player'daki görünümü
Dizilerin dvd player’daki görünümü

Bu kadar uzun bir ismi dvd player’da görmek mümkün olmadığından tek tek bütün dosyaları yeniden isimlendirmek gerekiyor. En uygun isimlendirme de 046 veya 46 gibi isimler oluyor. Dizilerin en az 30-40 bölüm olduklarını düşünürsek, her bir bölümü tek tek adlandırmak oldukça sıkıcı bir iş.Arkadaşım “Bana bu divx player’ı sen aldırdın, çöz bakalım bu sorunumu.” deyince, iş başa düştü. Bahsettiğim isimlendirmeyi yapacak bir program yazmaya bu sorundan dolayı karar verdim.Programı ücretsiz olan Turbo Delphi 2006 For Microsoft Windows yazmaya karar verdim.

Turbo Delphi’yi açtıktan sonra menüden File/New/VCL Forms Application – Delphi for Win32 komutu vererek yeni bir uygulama oluşturdum. Bu işlemi yaptığım zaman Delphi otomatik olarak boş bir form oluşturdu.

File menüsünden Save All komutunu vererek uygulamayı C sürücüsünün altındaki DosyaAdlandir isimli klasöre kaydettim. Kaydetme işlemini yaparken, Delphi’nin bana önerdiği Unit1.pas ismini kabul ettim, Project1.bdsproj ismin ise DosyaAdlandir.bdsproj olarak değiştirdim. Çünkü Delphi ,uygulamanın exe dosyasını üretirken, projeye verilen ismi kullanıyor.Artık sıra programın arayüzünü oluşturmaya geldi. Ara yüzü oluşturuken panelleri kullanmayı seviyorum. Böylece program ekranı kapladığında, nispeten de olsa, ağzı yüzü kaymıyor.Delphi’nin Tool Palette’inden bir tane Tpanel nesnesi alarak formun üzerine yerleştirdim.

Object Inspector’dan Align özelliğini alTop olarak ayarlayarak, bu panelin her zaman formun üst kısmını kaplamasını sağladım.

Panel’in Caption özelliğinde bulunan Panel1 yazısını da, panelin yazı görünmesini istemediğimden, sildim.Daha sonra form üzerine bir panel daha yerleştirdim. Bu panelin de Align özelliğini alClient olarak ayarlayarak, formun üzerinde boş olan bütün alanı kaplamasını istedim. Bu panelin üzerinde de yazı istemediğimden, Caption özelliğini boşalttım.Bir düğmeye basıldığında, adı değiştirilecek dosyaları ekranda görmek istediğimden forma bir tane düğme koymam gerekti. Tool Palette’den bir tane TButton alarak forma yerleştirdim.

Forma yerleştirilen sık kullanılacak nesnelere, nesnenin türünü ve ne iş yaptığını belirten isimler vermek, program kodunun okunabilirliğini arttıran okdukça güzel bir tekniktir. Bu yüzden Object Inspector’daki Delphi’nin otomatik olarak verdiği Button1 isimini btnListele olarak değiştirdim.

Düğmenin üzerindeki yazıyı belirlemek için düğmenin Caption özelliğini Li&stele olarak değiştirdim. Buradaki & işareti sayesinde, düğmedeki s harfinin altı çizili olacak ve klavyeden Alt+S tuşuna basıldığında, düğme tıklanmış gibi işlem görecektir.Düğmeye basıldığında, dosya adlarının bir yerde gösterilmesi gerekir. Bu yüzden ikinci panelin üzerine bir tane TListBox nesnesi yerleştirdim.

Bu ListBox’ın ismini lst1 olarak değiştirdim. Panelin tamamını kaplaması için de Align özelliğini alClient olarak ayaladım.Bu aşamada aklıma şöyle birşey geldi. Bazı dizi adları diziadi.sezon3.bolum.46.uploader.avi şeklinde oluyordu. Ben her sezonu ayrı bir klasöre koyduğumdan bu dosyanın adının 046 olması benim için yeterliydi. Dosya adının içinde tek bir sayı olsa, işim nispeten kolay olacaktı. Ancak bu örnekteki gibi bir durumda ilk sayı işime yaramayacağımdan ikinci sayıyı tespit etmek gerekecekti. Hazır elim değmişken, bari dosya adındaki son sayı da tespit edilebilsin diye düşündüm.
Bu nedenden dolayı, dosya adındaki hangi sayının yeni isim olarak kullanılacağına kullanıcının karar vermesi gerektiğini düşündüm. Bu yüzden de forma bir tane Radio Group koymaya karar verdim.

TRadioGroup nesnesindeki çerçevenin üzerindeki yazıyı belirlemek için Caption özelliği kullanılıyor. Bu özelliği Verilecek ad olarak değiştirdim.Aynı nesnenin üzerinde yer alacak radyo düğmelerini belirlemek için Items özelliği kullanılıyor. Üzerinde … olan düğmeyi kullanılarak; 1. sayı grubu2. sayı grubu, Son sayı grubu değerlerini bu özelliğe girdim. İlk radyo düğmesinin seçili olarak gelmesi için ItemIndex özelliğine 0 değerin verdim.Radyo düğmelerin dikey olarak değilde yatay olarak görünmesi için Radio Group nesnesnin Columns özelliğine 3 değerini girdim.Dosya isimlerini listeleyip, hangi kritere göre ad verileceğini belirlendikten sonra, geriye işlemin yapılmasını sağlayacak bir düğme eklemek kalıyordu. Bunun için forma bir TButton daha koydum. Düğmenin adını btnAdlandir, Caption değerini ise &Adlandir olarak değiştirdim.Son olarak Form nesnesini seçip Caption özelliğine DosyaAdlandir değerini verdim.Bu son adımla birlikte arayüz tasarımı da bitmiş oldu.

Formun bitmiş hali
Formun bitmiş hali

Bir programın çalışması için arayüz gerekli, ancak yeterli değil. Bir sonraki yazımda, programın çalışması için, hangi kodların hangi mantıkla yazıldığını anlatmaya çalışacağım.