A Simple start with MVP in Delphi for Win32, Part 2

Some month ago I wrote a simple article about an MVP variant called PassiveView. That example was very simple. Now I’ll present a more “advanced” version of that example. The main problem with first example was the following method: procedure TfrmCalculatorView.FormCreate(Sender: TObject); begin //Link controls with related interface IFirstOperand := TGUIEdit.Create(EditFirstOp); ISecondOperand := TGUIEdit.Create(EditSecondOp); ICalcResult := TGUIEdit.Create(EditResult); IOperators := TGUISelectableList.Create(ComboOperators); IError := TGUIEdit.Create(EditError); //link view and presenter FPresenter := TCalculatorPresenter.Create(Self); //<<– THIS IS THE BAD LINE end; The “BAD” line links the View with the Presenter but it’s in the view code, so this is meaning that View KNOWS the…
Continua a leggere →

A Simple start with MVP in Delphi for Win32, Part 1

As GUI framework such as VCL become more and more powerful, it’s common practice to let the UI layer do more than it should. Without a clear separation of responsibilities, the UI layer can often become an integral part of application and businness logic, but… this kind of responsabilities belongs to other layers of the application. A design pattern (and his numberless variants), is especially well suited to solving this problem. In this article I want to build a simple application using MVP pattern. Actually, pattern used is not “clear” MVP but his variation called Passive View. Using Fowler words:…
Continua a leggere →

.NET databinding in Delphi for Win32

Databinding is defined as: “General technique that binds two data/information sources together and maintains them in sync. This is usually done with two data/information sources with different types as in XML data binding. However in UI data binding, we bind data and information objects of the same type together (e.g. Java objects to Java UI elements).” Databinding is common technique in VCL. Since Delphi 1 we have TDataset class for bind data and UI controls (DB Aware) in a GUI application. In .NET world, instead, databinding is very different. So, I’m starting to write (actually for fun) a DataBinder component…
Continua a leggere →