Synopses & Reviews
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.
About the Author
is a programmer and writer who lives and works with his wife Margie and his two cats in Santa Cruz, California. He is the author of Delphi 4 Unleashed, C++Builder 3 Unleashed, Delphi 2 Unleashed, Teach Yourself Windows 95 Programming in 21 Days, Delphi Unleashed, Teach Yourself Windows Programming, Turbo Pascal Programming 101, and a contributing author of CBuilder 4 Unleashed. He worked with his wife Margie to create an interactive Java tutorial, and he has been published in many different technical magazines. Charlie has spoken on technical subjects such as Delphi, C++, and Java at major industry conferences, and in many smaller conferences from Europe to Australia to the Far East. Originally trained as an English major, Charlie worked as a journalist and college English teacher before turning to the world of computers. He has a BA in both Journalism and Computer Science from Evergreen State College in Olympia, Washington.
His interests include bicycling, hiking, playing folk guitar, listening to jazz, and writing poetry and fiction. A considerable portion of his free time is dedicated to spiritual pursuits within the Episcopal Church and various Buddhist and Hindu meditation traditions. Online, he can be found at http://www.elvenware.com.
Margie Calvert has been working with computers for the past six years. Her focus is on graphics and the Internet. She has collaborated with Charlie Calvert on several books, helping with editing and graphics. Margie also has an MBA in business, an MA in English, and a background in nursing.
John Kaster is a Senior Developer Relations Manager for Borland, and architect for the Borland Community Web site. Previously, he was a product manager, responsible for distributed computing and database connectivity for Delphi and C++ Builder. John is the author of the CodeCentral repository and other custom applications for the community Web site, all built with Borland technology. Before coming to Borland, he produced several award-winning software development tools. He is co-author of Delphi Database Development, Programming in Clipper 5, and numerous articles for various computing magazines. He has been speaking at conferences and providing training around the world for more than 15 years. John loves to share his discoveries about software development and discuss design philosophy with other developers.
Bob Swart (www.drbob42.com) is a UK Borland User Group (UK-BUG) and UK Borland Connections member and an independent technical author, trainer, and consultant using Delphi, Kylix and C++Builder based in Helmond, The Netherlands. Bob writes regular columns for The Delphi Magazine, Delphi Developer, UK-BUG Developer's Magazine, as well as the DevX, TechRepublic and the Borland Community Web sites. Kylix Developer's Guide is the second book where Bob Swart's name appears on the cover (the first one was C++Builder 5 Developer's Guide), but he has also participated and written chapters for The Revolutionary Guide to Delphi 2, Delphi 4 Unleashed, C++Builder 4 Unleashed and the upcoming Delphi 6 Developer's Guide (SAMS).
Bob is a frequent speaker at Borland and Delphi/Kylix related seminars all over the world, and writes his own training material for Dr.Bob's Delphi Clinics (in The Netherlands and the UK).
In his spare time, Bob likes to watch video tapes of Star Trek Voyager and Deep Space Nine with his 7-year old son Erik Mark Pascal and 5-year old daughter Natasha Louise Delphine.
Table of Contents
(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.