Delphi for Linux (Kylix) Development includes three main themes. First, the book recognized that much of its audience will be Windows developers who need to understand basic Linux development strategies, so there will be information throughout the book offering insight on how to leverage Windows development knowledge to the Linux platform. There will be significant coverage of the tools and features of the Kylix environment, but the book assumes that readers will be familiar with RAD development tools generally. Finally, there is extensive coverage of how to apply the CLX library in building solid applications. The book will also discuss cross-platform development strategies.
(NOTE: Each chapter concludes with a Summary.)
I. UNDERSTANDING DELPHI AND LINUX.1. Visual Development.
The Kylix IDE. The Menus. Visual Development. The Source for a Kylix Unit. Pascal Source Files. Compilation Time in Kylix. Working with Containers.2. Looping and Branching, Operators, and Recursion.
Defining Our Terms: Statements and Expressions. if Statements. Case Statements. for Loops. While Statements. repeat Statements. A Few Words about Operators. Recursion.3. Basic Pascal Syntax.
The Content of This Chapter. Integer Types and Floating-Point Types. Pascal Strings. Typecasts. Arrays. Records. Pointers. What You Won't Find in Object Pascal.4. Objects and Interfaces.
The Kylix Object Model. Interfaces. Variants. RTTI and Floating-Point Types. Frames. The Command-Line Compiler.5. The Editor and Debugger.
The Source Code Editor and Its Friends. A Tale of Two Tools: The Editor and the Designer. The Project Manager. The Browser. The To-Do List. Magic Tools: Code Insight. Using the Debugger. Using Exceptions to Clean Up Your Code. The Elf Debug Server.6. Understanding the Linux Environment.
Summary of the Linux Environment. Linux Desktops. X Architectural Overview. Programming X with Kylix. Window Managers. X Toolkits. A Few Words about Desktops.
II. CLX.7. CLX Architecture and Visual Development.
Qt and CLX. Qt and Events. The Slider Program in CLX. CLX, Qt, and the Hook Object. Working with Styles. Working with Resources. Creating Nonrectangular Forms.8. Packaging and Sharing Code.
Component Theory. Creating Descendants of an Existing Component. Packages: Placing a Component on the Component Palette. Creating Packages. Exploring a Package at Runtime. Getting Inside a Package at Runtime. Creating a Shared Object. Loading a Shared Object Dynamically.9. Creating Components.
Working with Messages. Extending the Elves Unit. A Second Compound Component. Creating a Combined TLabel and TEdit Component.10. Advanced Component Design.
Properties. More on Properties. Building Components from Scratch. The Clock Component. Creating Icons for Components. The Tools API: Property Editors and Component Editors. Component Templates.11. Graphics.
The Major Objects Found in QGraphics.pas. The TCanvas Object. Drawing Using Qt. The TColor Type. Brushes. Pens. Creating the PenMode Application. Fonts. Drawing Shapes. The Mandelbrot Example. A Pseudo-3D World.
III. LINUX SYSTEMS PROGRAMMING.12. Console Applications, Memory Management, and File I/O in Kylix.
Console Applications. Memory Management. File I/O in Kylix.13. Processes and Threads.
Methods of Application Execution in Linux. Kylix Threads. Linux Processes Control and Interprocess Communication.
IV. DATACLX.14. DataCLX Basics.
DataCLX Architecture. Data Access. Data Control. Typical Data Flow. Configuring the Server.15. Working with Data-Aware Components.
TSQLConnection. TSQLDataSet. TSQLQuery. TSQLStoredProc. TSQLTable. TClientDataset. TDataSetProvider. TSQLClientDataSet. TSQLMonitor. Normal Dataset Usage Patterns.16. Data Access Layer.
Goals of the Data Access Layer. The Big Picture. MyBase Datasets. Database Connectivity. dbExpress Driver Development. dbExpress Core Implementation.17. Creating a Real-World Application.
Application Description. Database Definition. Basic Design. GUI Interface. Web Interface.18. Database Optimizations.
Introduction. Populate Your Database. Monitor the SQL Communication. Avoid Holding Transactions Open for Long Periods of Time. Do Not Parameterize Queries that Contain the Verb “Like”. Avoid Primary Keys and Foreign Keys. Use Stored Procedures. Be Trigger-Happy. Be Picky. Parameterize and Prepare Your Queries for Maximum Performance. Avoid Fetchalls Like the Plague. Rob's Rules of Left Outer Joins. For Large Databases or Lots of Users, Cache Your Lookup Tables. Use Smart Lookups. Turn Off Metadata. Need Speed? Turn Off Asynchronous Writes, But Beware of the Risks. Understand Database Indexing. InterBase-Specific Tips.
V. WEB.19. Apache Web Server Applications.
Web Server Applications. Apache Web Server.20. Web Server Development.
Web Modules. New Web Server Application. WebBroker Components. Presenting Content. PageProducers. TableProducers.21. Advanced Web Server Development.
New WebApp. dbExpress. TDataSetTableProducer. Maintaining State Information. Advanced Page Producing. Images. Cross-Platform Strategies. Summary.Index.