Book Image

Expert Delphi - Second Edition

By : Marco Cantù, Paweł Głowacki
Book Image

Expert Delphi - Second Edition

By: Marco Cantù, Paweł Głowacki

Overview of this book

Master Delphi, the most powerful Object Pascal IDE and versatile component library for cross-platform native app development, by harnessing its capabilities for building natively compiled, blazingly fast apps for all major platforms, including Android, iOS, Windows, Mac, and Linux. Expert Delphi begins with a quick overview of Delphi, helping you get acquainted with the IDE and the Object Pascal language. The book then quickly progresses to more advanced concepts, followed by the architecture of applications and the FireMonkey library, guiding you through building server-side services, parallel programming, and database access. Toward the end, you’ll learn how to integrate your app with various web services and deploy them effectively. By the end of this book, you’ll be adept at building powerful, cross-platform, native apps for iOS, Android, Windows, and macOS—all from a single code base.
Table of Contents (21 chapters)
Free Chapter
1
Part 1: Building Blocks
6
Part 2: Going Mobile
12
Part 3: From Data to Services
19
Index

Building a data-driven UI

We can now build the GUI of the app, using the services provided by the data access layer we just built.

The data access logic has been implemented and it is available through the IToDoData interface. This should be the only way for the UI logic to access data. That is, we are going to implement the GetToDoData method in the main form’s unit that will return the reference to the data access interface. The following is the code for that:

uses uDMToDo;
function TFormToDo.GetToDoData: IToDoData;
begin
  if DMToDo = nil then
    DMToDo := TDMToDo.Create(Application);
  Result := DMToDo;
end;

In this way, we have achieved true plugin architecture. If we decide to change the underlying database access logic, the database access framework, or the database platform, we only need to make sure that the new class implements the IToDoData interface, which is available to the GUI code through the GetToDoData method...