|
DelphiLanguageGuide
Document Outline - Delphi
- Delphi Language Guide
- Language Overview
- Program Organization
- Delphi Source Files
- Other Files Used to Build Applications
- Compiler-Generated Files
- Example Programs
- A Simple Console Application
- A More Complicated Example
- A VCL Application
- Programs and Units
- Program Structure and Syntax
- The Program Heading
- The Program Uses Clause
- The Block
- Unit Structure and Syntax
- The Unit Heading
- The Interface Section
- The Implementation Section
- The Initialization Section
- The Finalization Section
- Unit References and the Uses Clause
- The Syntax of a Uses Clause
- Multiple and Indirect Unit References
- Circular Unit References
- Using Namespaces with Delphi
- Declaring Namespaces
- Searching Namespaces
- Namespace search order
- A namespace search example
- Using Namespaces
- Fully qualified unit names
- Namespaces and .NET Metadata
- Multi-unit Namespaces
- Fundamental Syntactic Elements
- The Delphi Character Set
- The Delphi Character Set and Basic Syntax
- Special Symbols
- Identifiers
- Qualified Identifiers
- Extended Identifiers
- Reserved Words
- Directives
- Numerals
- Labels
- Character Strings
- Comments and Compiler Directives
- Declarations and Statements
- Declarations
- Statements
- Simple Statements
- Assignment Statements
- Procedure and Function Calls
- Goto Statements
- Structured Statements
- Compound Statements
- With Statements
- If Statements
- Case Statements
- Control Loops
- Repeat Statements
- While Statements
- For Statements
- Iteration Over Containers Using For statements
- Blocks and Scope
- Blocks
- Scope
- Naming Conflicts
- Expressions
- Expressions
- Operators
- Arithmetic Operators
- Boolean Operators
- Complete Versus Short-Circuit Boolean Evaluation
- Logical (Bitwise) Operators
- String Operators
- Pointer Operators
- Set Operators
- Relational Operators
- Class Operators
- The @ Operator
- Operator Precedence
- Function Calls
- Set Constructors
- Indexes
- Typecasts
- Value Typecasts
- Variable Typecasts
- Data Types, Variables, and Constants
- Data Types, Variables, and Constants
- Simple Types
- Ordinal Types
- Integer Types
- Character Types
- Boolean Types
- Enumerated Types
- Enumerated Types with Explicitly Assigned Ordinality
- Subrange Types
- Real Types
- String Types
- About String Types
- Short Strings
- Long Strings
- WideString
- Working with null-Terminated Strings
- Using Pointers, Arrays, and String Constants
- Mixing Delphi Strings and Null-Terminated Strings
- Structured Types
- Sets
- Arrays
- Static Arrays
- Dynamic Arrays
- Multidimensional Dynamic Arrays
- Array Types and Assignments
- Dynamically allocated multidimensional arrays (.NET)
- Records
- File Types
- Pointers and Pointer Types
- Overview of pointers
- Pointer Types
- Character Pointers
- Type-checked Pointers
- Other Standard Pointer Types
- Procedural Types
- About Procedural Types
- Procedural Types in Statements and Expressions
- Variant Types
- Variants Overview
- Variant Type Conversions
- Variants in Expressions
- Variant Arrays
- OleVariant
- Type Compatibility and Identity
- Type Identity
- Type Compatibility
- Assignment Compatibility
- Declaring Types
- Variables
- Declaring Variables
- Absolute Addresses
- Dynamic Variables
- Thread-local Variables
- Declared Constants
- True Constants
- Constant Expressions
- Resource Strings
- Typed Constants
- Array Constants
- Record Constants
- Procedural Constants
- Pointer Constants
- Procedures and Functions
- Procedures and Functions
- About Procedures and Functions
- Declaring Procedures and Functions
- Procedure Declarations
- Function Declarations
- Calling Conventions
- Forward and Interface Declarations
- External Declarations
- Linking to Object Files
- Importing Functions from Libraries
- Overloading Procedures and Functions
- Local Declarations
- Parameters
- About Parameters
- Parameter Semantics
- Value and Variable Parameters
- Constant Parameters
- Out Parameters
- Untyped Parameters
- String Parameters
- Array Parameters
- Open Array Parameters
- Variant Open Array Parameters
- Default Parameters
- Default Parameters and Overloaded Functions
- Default Parameters in Forward and Interface Declarations
- Calling Procedures and Functions
- Program Control and Parameters
- Open Array Constructors
- Using the inline Directive
- Classes and Objects
- Classes and Objects
- Class Types
- Inheritance and Scope
- TObject and TClass
- Compatibility of Class Types
- Object Types
- Visibility of Class Members
- Private, Protected, and Public Members
- Additional Visibility Specifiers for .NET
- Published Members
- Automated Members (Win32 Only)
- Forward Declarations and Mutually Dependent Classes
- Fields
- About Fields
- Class Fields (.NET)
- Methods
- About Methods
- Method Binding
- Static Methods
- Virtual and Dynamic Methods
- Virtual Versus Dynamic
- Overriding Versus Hiding
- Reintroduce
- Abstract Methods
- Class Static Methods (.NET)
- Overloading Methods
- Constructors
- The Class Constructor (.NET)
- Destructors
- Message Methods
- Implementing Message Methods
- Message Dispatching
- Properties
- About Properties
- Property Access
- Array Properties
- Index Specifiers
- Storage Specifiers
- Property Overrides and Redeclarations
- Class Properties (.NET)
- Class References
- Class-Reference Types
- Constructors and Class References
- Class Operators
- The is Operator
- The as Operator
- Class Methods
- Exceptions
- About Exceptions
- When To Use Exceptions
- Declaring Exception Types
- Raising and Handling Exceptions
- Try...except Statements
- Re-raising Exceptions
- Nested Exceptions
- Try...finally Statements
- Standard Exception Classes and Routines
- Nested Type Declarations
- Declaring Nested Types
- Declaring and Accessing Nested Classes
- Nested Constants
- Standard Routines and I/O
- Standard Routines and I/O
- File Input and Output
- Text File Device Drivers
- The Open function
- The InOut function
- The Flush function
- The Close function
- Handling null-Terminated Strings
- Null-Terminated String Functions
- Wide-Character Strings
- Other Standard Routines
- Libraries and Packages
- Libraries and Packages
- Calling Dynamically Loadable Libraries
- Static Loading
- Dynamic Loading
- Writing Dynamically Loaded Libraries
- Using Export Clause in Libraries
- Library Initialization Code
- Global Variables in a Library
- Libraries and System Variables
- Exceptions and Runtime Errors in Libraries
- Shared-Memory Manager (Win32 Only)
- Packages
- Understanding Packages
- Package Declarations and Source Files
- Naming packages
- The requires clause
- Avoiding circular package references
- Duplicate package references
- The contains clause
- Avoiding redundant source code uses
- Compiling Packages
- Generated Files
- Package-Specific Compiler Directives
- Package-Specific Command-Line Compiler Switches
- Object Interfaces
- Object Interfaces
- Interface Types
- IInterface and Inheritance
- Interface Identification
- Calling Conventions for Interfaces
- Interface Properties
- Forward Declarations
- Implementing Interfaces
- Class Declarations
- Method Resolution Clause
- Changing Inherited Implementations
- Implementing Interfaces by Delegation
- Delegating to an Interface-Type Property
- Delegating to a Class-Type Property
- Interface References
- Implementing Interface References
- Interface Assignment Compatibility
- Interface Typecasts
- Interface Querying
- Automation Objects (Win32 Only)
- Dispatch Interface Types
- Dispatch interface methods
- Dispatch interface properties
- Accessing Automation Objects
- Automation Object Method-Call Syntax
- Dual Interfaces
- Memory Management
- Memory Management on the Win32 Platform
- The Memory Manager (Win32 Only)
- Variables
- Internal Data Formats
- Integer Types
- Character Types
- Boolean Types
- Enumerated Types
- Real Types
- The Real48 type
- The Single type
- The Double type
- The Extended type
- The Comp type
- The Currency type
- Pointer Types
- Short String Types
- Long String Types
- Wide String Types
- Set Types
- Static Array Types
- Dynamic Array Types
- Record Types
- File Types
- Procedural Types
- Class Types
- Class Reference Types
- Variant Types
- Memory Management Issues on the .NET Platform
- Constructors
- Finalization
- The Dispose Pattern
- Unit Initialization and Finalization
- Unit Initialization Considerations for Assemblies and Dynamically Linked Packages
- Program Control
- Program Control
- Passing Parameters
- By Value vs. By Reference
- Pascal, cdecl, stdcall, and safecall Conventions
- Register Convention
- Register saving conventions
- Handling Function Results
- Handling Method Calls
- Understanding Exit Procedures
- Inline Assembly Code (Win32 Only)
- Using Inline Assembly Code (Win32 Only)
- Using the asm Statement
- Using Registers
- Understanding Assembler Syntax (Win32 Only)
- Assembler Statement Syntax
- Labels
- Instruction Opcodes
- RET instruction sizing
- Automatic jump sizing
- Assembly Directives
- Operands
- Assembly Expressions (Win32 Only)
- Differences between Delphi and Assembler Expressions
- Expression Elements
- Numeric Constants
- String Constants
- Registers
- Symbols
- Expression Classes
- Expression Types
- Expression Operators
- Assembly Procedures and Functions (Win32 Only)
- Compiler Optimizations
- Function Results
- .NET Topics
- Using .NET Custom Attributes
- Declaring a Custom Attribute Class
- Using Custom Attributes
- Using the DllImport Custom Attribute
- Custom Attributes and Interfaces
- Index
Dostları ilə paylaş: |
|
|