This book will make you a faster Delphi developer, it doesn't matter if you are just starting out, or have been using Delphi since version 1, you will find all sorts of tips, tricks and hacks to boost your productivity.
Training Movies Home
- Logging Using Dependency Inversion - 238
- Define Your Own Anonymous Method Types - #237
- Ways to Improve VCL Rendering Times - #236
- Delphi Logging Mastery: QuickLogger & Custom Syslog Server Setup - #235
- A Simple FireDAC SQLite Application - #234
- Build a DataSnap Client and Server - Delphi #233
- Maximise the power of the Replace Dialog - #232
- Build Notepad.exe in Delphi - #231
- Use the Code Formatter to Add Line Breaks to Your Uses - #230
- Reduce the Memory Required to Build Your Project - #229
- Comparing Components - #228
- WebP Support in Skia - New in Delphi 12 - #227
- Enhanced TStrings Property Editor - New in Delphi 12 - #226
- Long String Literals - New in Delphi 12 - #225
- Multi-Line Strings - New in Delphi 12 - #224
- Using Interposer Classes - #223
- Label Accelerator Keys - #222
- Some New Delphi Books - #221
- GExperts Shortcuts - #220
- What to Put in a DataModule? - #219
- Where Does the TDataSource Go? - #218
- Dependency Inversion - #217
- Strings From the Debugger - #216
- Class Constructors, Sometimes Not What You Expect - #215
- Don't make this common GUI mistake - #214
- New in 11.3 - High-DPI Editor Icons - #213
- New in 11.3 - Highlight Words - #212
- New in 11.3 - Show Build Folder in Explorer - #211
- Fix Your broken Toolbars in the IDE - #210
- Change Your Build Configuration Faster - Delphi #209
- Change Project in the Project Window - #208
- JCLCompression and 7-Zip - #207
- Multithreaded Zip File Extraction - #206
- When 2 is not 2 - #205
- TGridPanel Shortcuts - #204
- Refactoring at ADUG 2022 - Come and see my talk - #203
- The Many Ways to Show the Debug Inspector - #202
- Arrays in Delphi - #201
- Is the LSP Improved in Delphi 11? - #199
- DeepStack API Integration - #200
- New Project On Start-up - #198
- Migrating a Package to Delphi 11 - #197
- Data-aware Quick Edit - #196
- TDateTimePicker Kind Enhancement - #195
- TTreeView Check Boxes - #194
- New TCustomComboBox Properties - #193
- New TCustomGroupBox Properties - #192
- Faster Options Screen Loading - #191
- EditMargins Property on TCustomMemo - #190
- VCL Design-time Styles - #189
- Enhancements to TRichEdit - #188
- New VCL Control: TDBLabeledEdit - #187
- FMX Designer Guidelines - #186
- Binary Literals and Digit Separator - #185
- New 64 Bit Zip Support - #184
- New Editor Fonts - Delphi #183
- Enhanced Welcome Screen - #182
- Record Helper For TDateTime - #181
- TStringDynArray improved assignment capabilities - #180
- TZipFile FileComment Bug - #179
- Uses Cleaning with cnPack and Pascal Analyzer - #178
- Managed Records - #177
- InputQuery Part II - Password Masking - #176
- TVirtualImageList and TImageCollection - #175
- Eval Swap in CnPack - #174
- TContolList Part 3 - Real World Usage - #173
- TControlList Part 2 - LiveBindings - #172
- Telnet using TidTCPClient - #171
- QuickEdits in the Form Designer - #170
- InputQuery - It might be more powerful than you think - #169
- The Problem With SpeedButton Images - #168
- Shifting a Control, when it's completely covered by other controls - #167
- TControlList - New in Delphi 10.4.2 - #166
- TImageList.GrayscaleFactor - #164
- Ping - #165
- Hide Non-Visual Controls - #163
- Editor Navigation Bar Shortcuts - #162
- Code Faster in Delphi - DelphiCon Presentation - #161
- 32 Gigabyte Application - #160
- Building an Application for Printing Labels - #159
- Movie #158 - Block Selection Mode
- Movie #157 - Keyboard Shortcuts (to promote my new book)
- Movie #156 - Did the TSplitView / TPanel Style Bug Get Fixed in 10.4.1?
- Movie #155 - String Result (Obscure Syntax #6)
- Movie #154 - Function Result Name (Obscure Syntax #5)
- Movie #153 - Adding Binary Page Numbers to a PDF
- Movie #152 - Character + String Concatenation (Obscure Syntax #4)
- Movie #151 - Per Form VCL Styling
- Movie #150 - Language Server Protocol - First Impressions
- Movie #149 - What is ThreadVar? (Obscure Syntax #3)
- Movie #148 - OAuth with Twitter
- Movie #147 - HTTP Redirection with Indy
- Happy 25th Birthday Delphi
- Movie #146 - TSplitView / TPanel Style Bug
- Movie #145 - Variable Height TListView Item in FMX
- Movie #144 - FDMemTable Design Time Editing
- Movie #143 - String Copy Procedure
- Movie #142 - Regular Expression Matches
- Movie #141 - Styling 3rd Party Controls
- Movie #140 - Delphi 10.3 Rio First Impressons
- Movie #139 - Synchronize Prototypes
- Movie #138 - Multipaste
- Movie #137 - IF statement refactoring and StrUtils functions
- Movie #136 - Livebinding a Checkbox
- Movie #135 - Layout Through Parentage and Alignment in FireMonkey
- Movie #134 - Console Text Color
- Movie #133 - Minesweeper (and other random things)
- Movie #132 - Obscure (. .) Syntax
- Movie #131 - Writing Your Own Text Driver
- Movie #130 - Obscure ^ Syntax.
- Movie #129 - $(ProductVersion) Environment Variable
- Movie #128 - Development Hardware
- Movie #127 - The New Dark IDE Theme in Tokyo
- Movie #126 - TCheckbox Differences in VCL and FireMonkey
- Move #125 - IDE Tips And Coding Shortcuts (CodeRage XII)
- Movie #124 - IndexFieldNames Property on FireDAC DataSets
- Movie #123 - FireDAC Preprocessor
- Movie #122 - Changing the color of a TEdit with Styles Enabled
- Movie #121 - Using reFind to fix System.UITypes warning
- Movie #120 - TListView Design Mode in FireMonkey
- Movie #119 - TcxTextEdit from DevExpress
- Movie #118 - User Interface Security
- Movie #117 - Bowling game code kata
- Movie #116 - Fractals, Parallel Programing, Code Optimization and Cross Platform
- Movie #115 - Syntax Highlighting Colors
- Movie #114 - Indentation
- Movie #113 - Flexible and Supercharged Key Hashing with TDictionary (CodeRage X replay)
- Movie #112 - Tab Order
- Movie #111 - Using TGridPanel to Control Proportional Layouts
- Movie #110 - Building VCL Dialogs
- Movie #109 - Working with Legacy Code
- Movie #108 - Touch Scrolling in VCL Apps
- Movie #107 - Become Your Own Art Department (CodeRage 9)
- Movie #106 - Express Quantum Grid First Impressions
- Movie #105 - Refactoring Skill Sprint
- Movie #104 - Loops with Guard Clauses
- Movie #103 - Property Code Templates
- Movie #102 - Alignment Ordering Problem
- Movie #101 - Component Prefix Wizard
- Movie #100 - Structural Highlighting
- Movie #99 - Mouse Cursors in FireMonkey
- Movie #98 - Exit
- Movie #97 - Common Delphi Coding Anti-Patterns
- Movie #96 - Escaping the Try...Finally...Free Nest
- Movie #95 - Margins and Padding Confusion
- Movie #94 - Begin instead of Initialization
- Movie #93 - Fish Facts for iOS
- Movie #92 - Renaming Component Events
- Movie #91 - Assigning to an Items Property
- Movie #90 - Code Fonts
- Movie #89 - Implementing Interfaces Shortcuts
- Movie #88 - OnCreateItemClass
- Movie #87 - Command Line Parameters
- Movie #86 - Getting help with Delphi
- Movie #85 - Property Analyser Part 1
- Movie #84 - Video Capture
- Movie #83 - Sorting Dynamic Arrays
- Movie #82 - XML Databindings
- Movie #81 - Anchors and Alignment on Forms
- Movie #80 - Levels of OOP Abstraction
- Movie #79 - Record Helpers for Primitive Types
- Movie #78 - FireMonkey: Visual LiveBindings, Anchors and Actions
- Movie #77 - Visual Live Bindings
- Movie #76 - SQLite in XE3
- Movie #75 - Importing an XBMC Database
- Movie #74 - THeaderControl
- Movie #73 - DFM Numbers
- Movie #72 - Platform Assistant
- Movie #71 - Essential Pascal (CodeRage 4 Replay)
- Movie #70 - Key Tags
- Movie #69 - Self
- Movie #68 - Abusing Typed Constants
- Movie #67 - Form Ownership
- Movie #66 - Animating Adding a TListBoxItem
- Movie #65 - FireMonkey Periodic Table
- Movie #64 - Session State on Rest Server
- Movie #63 - Using jQuery Mobile with IntraWeb - CodeRage 6 Replay
- Movie #62 - Introduction to Intraweb - CodeRage 6 Replay
- Movie #61 - FishFacts FireMonkey
- Movie #60 - Visual Form Inheritance
- Movie #59 - Popup Menu from a Button Click
- Movie #58 - TDataSetField
- Movie #57 - Scoped Enums
- Movie #56 - Extracting RichText from a TRichEdit
- Algorithms #4 - Merge Sort
- Movie #55 - FTP Password Recovery
- Movie #54 - Dynamic Typing
- Movie #53 - TDataSet Field Access
- Movie #52 - TIniFile
- Movie #51 - TStringLists and CSV Data
- Movie #50 - TClientDataSet & TProvider
- Movie #49 - TClientDataSet.CloneCursor
- Movie #48 - TDataSet.DisableControls
- Movie #46 - Migrating from the BDE - CodeRage III Replay
- Movie #47 - 100 IDE Hints and Tips - CodeRage III Replay
- Movie #45 - Quote of the Day
- Movie #44 - Drag and Drop
- Movie #43 - OnSetText
- Movie #42 - Hint Counter
- Movie #41 - OnCalcFields: fkCalculated vs. fkInternalCalc
- Movie #40 - Changing How Fields are Displayed
- Movie #39 - XML Data Binding
- Movie #38 - Charting Jpeg Compression
- Movie #37 - For Loop Ramblings
- Movie #36 - HyperLink Labels
- Movie #35 - DataSnap (Part 1)
- Algorithms #3 - Selection Sort
- Algorithms #2 - Insertion Sort
- Algorithms #1 - Bubblesort
- Movie #34 - Parameters
- Movie #33 - Dockable Forms 2
- Movie #32 - Dockable Forms
- Movie #31 - Making Your Applications Talk
- Movie #30 - Exceptions in Constructors and Destructors
- Movie #29 - Class Helpers
- Movie #28 - Flash within Delphi
- Movie #27 - DLLs
- Movie #26 - Form Creation
- Movie #25 - Enter as Tab
- Movie #24 - DBGrid OnDrawColumnCell
- Movie #23 - Images on the Clipboard
- Movie #22 - SQL Part Four: Insert
- Movie #21 - SQL Part Three: Update and Delete
- Movie #20 - ScaleBy
- Movie #19 - Hate With a Passion
- Movie #18 - Sender, As and Is
- Movie #17 - Owner vs. Parent
- Movie #16 - Autosize
- Movie #15 - OnResize Event
- Movie #14 - Anchors and Constraints
- Movie #13 - Align and Margins
- Movie #12 - TListbox
- Movie #11 - SQL Part Two
- Movie #10 - SQL Part One
- Movie #9 - Virtualization
- Movie #8 - Customer 2.0
- Movie #7 - A Data-Aware Application
- Movie #6 - Hiding the form Caption
- Movie #5 - My First PHP Application
- Movie #4 - Delayed Form Creation
- Movie #3 - IDE Tricks
- Movie #2 - Writing Actions
- Movie #1 - Icons