(20-10-2016, Saat: 13:46)pro_imaj Adlı Kullanıcıdan Alıntı: [ -> ]Örn;
MDL01StokIslemleri
MDL01StokTanim
MDL01StokEnvanter
Yukarıdaki gibi modülleri ayırırken sayısal ibare kullanıyorum ("01") modül ararken kolay oluyor fakat kod yazarken modül kodu hatırlama sorunu oluyor.
Fesih beyin önerdiği gibi, türe göre sabit bir önek(prefix) ile başlaması güzel bir isimlendirme.
Eğer formsa FormX,FormY veya Frame ise FrameX, FrameY gibi.
Eğer frameler ilgili bir kod yazmayı düşünüyorsam, Frame yazdığımda intellisence Frame ile ilgili olanları zaten listeleyecektir.
Hatta prefix unit' isimlerinden tutunda klasör isimlerine kadar uygulanabilir.
Bunun dışında bir map/eşleme mantığı yapabilinir belki...
Bir TDictionary nesnesinde Key/Value olarak bir eşleşme yapılıp,
Key değerinden forma erişilebilinir. Key değeri aşağıda ki bir enum yapılabilinir.
TFormTypes =
(
ftStokIslemleri
, ftStokTanim
, ftStokEnvanter
);
Yukarıda ki her bir enum değeri, bir form ismine karşılık gelecek şekilde olabilir.
Enum Key değerlerinden formlara erişeceğimiz için,form isminin çok da bir önemi olmayabilir bizim için.
Ama yinede düzgün bir isim vermekte fayda var.
var
AMap : TDictionary<TFormTypes,TClass>;
Map'leme işlemini yapalım.
procedure CreateMap();
begin
AMap.Add(ftStokIslemleri,TForm2);
AMap.Add(ftStokTanim,TForm3);
AMap.Add(ftStokEnvanter,TForm4);
end;
Enum değerinden formun bulunması
function GetForm(AFormType:TFormTypes):TForm;
var
cls : TClass;
begin
AMap.TryGetValue(AFormType,cls);
end;
Kullanmaya gelince
CreateMap();
GetForm(ftStokIslemleri);
GetForm(ftStokTanim);
GetForm(ftStokEnvanter);
"Tabi burada yazdıklarım sembolik ifadeden ibaret". Eksikler mevcut. Örneğin GetForm methodu içersinde TryGetValue sonrasında dönen class tipi ile ilgili işlemin yapılıp geriye döndürülmesi gerekiyor vs.
Yani form isimlerini hatırlamakta zorlanıyorsak, yada projede arıyorsak bunların yerine formlara karşılık gelen, daha iyi hatırlayabileceğimiz ve tek bir yere bakacağımız enum değerleri olma üzerine kurulu bir mantık.
Tıpkı herhangi bir siteye girmek istediğimizde, sitenin IP adresini yazmak yerine sitenin domain adresini yazarak girmemiz yada telefon rehberimizde ki kayıtlı kişilere ulaşmak için ilk önce ismini bulup, sonra numarasına erişmemiz günlük hayatta sık yaptığımız insani davranışlardan...