Yorumları: 253
Konuları: 16
Kayıt Tarihi: 26-09-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.279 Uzman
16-02-2020, Saat: 20:44
(Son Düzenleme: 26-02-2020, Saat: 14:20, Düzenleyen: DelphiCan.)
Bu soruda; Aşağıdaki unit dosyasını projeye ekledikten sonra, TBirsey sınıfından bir nesne oluşturup, Yap methodunu çağırılması isteniyor.
Fakat kullanacağınız unit içindeki uses bloklarında, UnitBirsey isimli unitin tanımlı olmaması gerekiyor. Ayrıca bir memory leak olmaması gerekiyor.
unit UnitBirsey;
interface
uses
System.Classes,
Vcl.Dialogs;
type
TBirSey = class(TPersistent)
public
procedure Yap;
end;
implementation
procedure TBirSey.Yap;
begin
ShowMessage('Bir şey yaptım');
end;
initialization
RegisterClass(TBirSey);
finalization
UnRegisterClass(TBirSey);
end.
İyi eğlenceler.
Yorumları: 1.572
Konuları: 88
Kayıt Tarihi: 09-08-2016
Rep Puanı: 13.841 Üstad
17-02-2020, Saat: 09:26
(Son Düzenleme: 26-02-2020, Saat: 14:20, Düzenleyen: DelphiCan.)
Bu bölümü hortlattığın için çok teşekkürler @ ismailkocacan
P.tesi sabahı, işe başlamadan güzel bir antrenman yapmış oldum senin vesilenle:
uses RTTI;
var
RC: TRttiContext;
InsType: TRttiInstanceType;
Obj : TObject;
begin
InsType := (RC.FindType('UnitBirsey.TBirSey') as TRttiInstanceType);
Obj := InsType.MetaClassType.Create;
try
InsType.GetMethod('Yap').Invoke(Obj, []);
finally
Obj.Free;
end;
end;
There's no place like 127.0.0.1
Yorumları: 253
Konuları: 16
Kayıt Tarihi: 26-09-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.279 Uzman
17-02-2020, Saat: 22:07
(Son Düzenleme: 26-02-2020, Saat: 14:21, Düzenleyen: DelphiCan.)
(17-02-2020, Saat: 09:26)SimaWB Adlı Kullanıcıdan Alıntı: Bu bölümü hortlattığın için çok teşekkürler @ismailkocacan 
P.tesi sabahı, işe başlamadan güzel bir antrenman yapmış oldum senin vesilenle:
uses RTTI;
var
RC: TRttiContext;
InsType: TRttiInstanceType;
Obj : TObject;
begin
InsType := (RC.FindType('UnitBirsey.TBirSey') as TRttiInstanceType);
Obj := InsType.MetaClassType.Create;
try
InsType.GetMethod('Yap').Invoke(Obj, []);
finally
Obj.Free;
end;
end;
Ellerinize Sağlık
Yorumları: 645
Konuları: 85
Kayıt Tarihi: 04-10-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 11
- Delphi 10.4
- Delphi 10.3
- Delphi 10.2
- Delphi 10.1
- Delphi 10
- Delphi XE Serisi
Rep Puanı: 2.772 Uzman
(17-02-2020, Saat: 09:26)SimaWB Adlı Kullanıcıdan Alıntı: Bu bölümü hortlattığın için çok teşekkürler @ismailkocacan 
P.tesi sabahı, işe başlamadan güzel bir antrenman yapmış oldum senin vesilenle:
uses RTTI;
var
RC: TRttiContext;
InsType: TRttiInstanceType;
Obj : TObject;
begin
InsType := (RC.FindType('UnitBirsey.TBirSey') as TRttiInstanceType);
Obj := InsType.MetaClassType.Create;
try
InsType.GetMethod('Yap').Invoke(Obj, []);
finally
Obj.Free;
end;
end;
Kodları anlamakla beraber nerelerde kullanıldığını merak ediyorum. Bugüne kadar hiç görmedim. Nasıl problemlerde değerlendirilebilir
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Yorumları: 253
Konuları: 16
Kayıt Tarihi: 26-09-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.279 Uzman
(17-02-2020, Saat: 22:42)narkotik Adlı Kullanıcıdan Alıntı: (17-02-2020, Saat: 09:26)SimaWB Adlı Kullanıcıdan Alıntı: Bu bölümü hortlattığın için çok teşekkürler @ismailkocacan 
P.tesi sabahı, işe başlamadan güzel bir antrenman yapmış oldum senin vesilenle:
uses RTTI;
var
RC: TRttiContext;
InsType: TRttiInstanceType;
Obj : TObject;
begin
InsType := (RC.FindType('UnitBirsey.TBirSey') as TRttiInstanceType);
Obj := InsType.MetaClassType.Create;
try
InsType.GetMethod('Yap').Invoke(Obj, []);
finally
Obj.Free;
end;
end;
Kodları anlamakla beraber nerelerde kullanıldığını merak ediyorum. Bugüne kadar hiç görmedim. Nasıl problemlerde değerlendirilebilir
Nerelerde kullanıldığına dair bir örnek; Remote Method Invocation
Alıntı:http://host:port/datasnap/rest/[ClassName]/[MethodName]/[ParamValue]
Yorumları: 910
Konuları: 69
Kayıt Tarihi: 30-06-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 8.494 Üstad
Front Control Pattern'de de bu yöntem kullanılabilir.
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
Yorumları: 253
Konuları: 16
Kayıt Tarihi: 26-09-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.279 Uzman
(10-09-2020, Saat: 23:32)uparlayan Adlı Kullanıcıdan Alıntı: Front Control Pattern'de de bu yöntem kullanılabilir.
Haklısınız.Ayrıca hardcoded bir yöntem olmamış olur.
Eğer buysa, şu methodu çağır gibi bir sürü kod olmaz.
Yorumları: 910
Konuları: 69
Kayıt Tarihi: 30-06-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 8.494 Üstad
Hatta o bilgi yığını kullanılarak otomatik menü de oluşturulabilir
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
Yorumları: 4.249
Konuları: 381
Kayıt Tarihi: 07-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 17.135 Üstad
(11-09-2020, Saat: 21:50)uparlayan Adlı Kullanıcıdan Alıntı: Hatta o bilgi yığını kullanılarak otomatik menü de oluşturulabilir
Şu an yalnızca ikiniz (birkaç kişi daha olabilir) aynı frekansta anlaşıyorsunuz.
Bizim anlayacağınız bir seviyede, basit de olsa örnekleyerek anlatabilir misiniz @ uparlayan üstadım.
DelphiCan'dır!
Yorumları: 910
Konuları: 69
Kayıt Tarihi: 30-06-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 8.494 Üstad
12-09-2020, Saat: 08:46
(Son Düzenleme: 12-09-2020, Saat: 09:21, Düzenleyen: uparlayan.)
@ Fesih ARSLAN ustadım estağfurullah
Ayrı bir konu mu açsak bilemedim ama buradaki teknik şimdi özet olarak bahsedeceğim tasarım deseninin ufak ama can alıcı bir noktasını da temsil ediyor.
Front Controller (Ön Kontrolör) tasarım modeli, tüm taleplerin, isteklerin tek bir Dispatcher (işleyici) tarafından ele alınabilmesi için merkezi bir talep işleme mekanizması sunar. Bu işleyici, talebin kimlik doğrulamasını, yetkilendirmesini, loglanmasını veya talebin takibini yapabilir ve ardından talepleri ilgili işleyicilere yönlendirebilir. Bu tasarım modelinin 3 temel varlık tipi vardır;
- Front Controller (Ön Denetleyici)
Uygulamaya gelen her türlü istek için merkezi, tek işleyicidir. Bu nesne tüm uygulama boyunca sadece 1 kere tanımlanır. Bu nesne bir singleton nesne şeklinde tasarlanabilir. Temel görevi yukarıda saydıklarıma ek olarak parametreleri Dispatcher'e iletmektir.
- Dispatcher (Dağıtıcı)
Front Controller'den gelen talebi ilgili View'e yönlendirir. Dağıtıcılığı da bu davranışından kaynaklıdır. Yani Front Controller'den gelen talepleri emir gibi kabul edip ilgili View'i çağırır veya yükler. Dispatcher serbst bir sınıf olabileceği gibi, duruma göre Front Controller'in altındaki bir nested class olarak da tanımlanabilir. Facade veya Fabric tipi tasarım desenleri de kullanılıyorsa Dependency'leri en aza indirgemek adına ayrı (serbest) bir sınıf şeklinde tanımlanması daha doğru olabilir.
Dynamic Method Invoke tekniği ise bu nesnenin içinde kullanılır.
- View (Görünüm)
Görünümler, isteklerin yapıldığı, gerçekleştiği, fiilen elle tutulur gözle görülür hale getirildiği nesnelerdir. Bunu basit anlamda Diyalog pencereleri, formlar veya actionlar gibi düşünebilirsiniz. Çünkü sonuçta tüm bunlar kullanıcının etkileşim içine girdiği farklı tipteki nesnelerdir.
Peki bu tasarım deseninin faydası ne? Çok basit, düzen...
Herkesin aşina olduğu gibi masaüstü bir uygulama üzerinden düşünelim. Normalde alışageldiğimiz haliyle ne yapıyoruz? Ana ekrana bir menü veya bu işi görecek bir treeview veya bir ribbon vesaire ekliyoruz. Sonra bu menüye elemanlar ekliyoruz kimisini actionlara bağlıyoruz kimisini ise onclick olayına bağlıyoruz. Devamında ne yapıyoruz? Actionda veya OnClick olayında gidip bu formları Create ediyoruz, bazılarına parametre veriyoruz vesaire... E güzel, güzel de iş 30-40 formdan sonra kendini tekrarlamaya başlıyor... Aynı kodu 30-40 yerde görmeye başlıyoruz değil mi... Bunu bir problem olarak görmeyenleriniz elbette olacaktır, teknik olarak yanlış bir yol da değil zira sağ elimizle sol kulağımızı tutuyoruz aslında ama programcı olarak "odağımızı" kaybediyoruz. Bu tasarım deseni temelde bize bunu sağlıyor. Ben 30-40 formdan bahsettim ama aranızda yüzlerce form ve menülerle uğraşan arkadaşlarımız da elbette vardır. Bir de onlardan dinlemek isterim siz bu hengameyle nasıl mücadele ediyorsunuz diye...
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
|