ref.pdf
(
837 KB
)
Pobierz
Free Pascal :
Reference guide.
Reference guide for Free Pascal, version 2.6.2
Document version 2.6
February 2013
Michaël Van Canneyt
Contents
1
Pascal Tokens
10
1.1
Symbols
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.2
Comments
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
1.3
Reserved words
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
1.3.1
Turbo Pascal reserved words
. . . . . . . . . . . . . . . . . . . . . . . . . .
12
1.3.2
Free Pascal reserved words
. . . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.3.3
Object Pascal reserved words
. . . . . . . . . . . . . . . . . . . . . . . . .
13
1.3.4
Modifiers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.4
Identifiers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.5
Hint directives
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.6
Numbers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
1.7
Labels
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
1.8
Character strings
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2
Constants
19
2.1
Ordinary constants
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.2
Typed constants
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.3
Resource strings
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3
Types
22
3.1
Base types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.1.1
Ordinal types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
Integers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
Boolean types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
Enumeration types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
Subrange types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.1.2
Real types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.2
Character types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.2.1
Char or AnsiChar
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.2.2
WideChar
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.2.3
Other character types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
1
CONTENTS
3.2.4
Strings
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.2.5
Short strings
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.2.6
Ansistrings
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.2.7
UnicodeStrings
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
3.2.8
WideStrings
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
3.2.9
Constant strings
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
3.2.10
PChar - Null terminated strings
. . . . . . . . . . . . . . . . . . . . . . . .
32
3.2.11
String sizes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3.3
Structured Types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
Packed structured types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.3.1
Arrays
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
Static arrays
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
Dynamic arrays
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
Packing and unpacking an array
. . . . . . . . . . . . . . . . . . . . . . . .
38
3.3.2
Record types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
3.3.3
Set types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
3.3.4
File types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
3.4
Pointers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
3.5
Forward type declarations
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
3.6
Procedural types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
3.7
Variant types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
3.7.1
Definition
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
3.7.2
Variants in assignments and expressions
. . . . . . . . . . . . . . . . . . . .
51
3.7.3
Variants and interfaces
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
4
Variables
53
4.1
Definition
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
4.2
Declaration
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
4.3
Scope
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
4.4
Initialized variables
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
4.5
Thread Variables
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
4.6
Properties
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
5
Objects
60
5.1
Declaration
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
5.2
Fields
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
5.3
Static fields
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
5.4
Constructors and destructors
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
5.5
Methods
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
5.5.1
Declaration
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
5.5.2
Method invocation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
2
CONTENTS
Static methods
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
Virtual methods
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
Abstract methods
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
5.6
Visibility
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
6
Classes
69
6.1
Class definitions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
6.2
Class instantiation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
6.3
Methods
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
6.3.1
Declaration
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
6.3.2
invocation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
6.3.3
Virtual methods
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
6.3.4
Class methods
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
6.3.5
Message methods
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
6.3.6
Using inherited
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
6.4
Properties
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
6.4.1
Definition
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
6.4.2
Indexed properties
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
6.4.3
Array properties
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
6.4.4
Default properties
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
6.4.5
Storage information
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
6.4.6
Overriding properties
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
6.5
Nested types and variables
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
7
Interfaces
85
7.1
Definition
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
7.2
Interface identification: A GUID
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
7.3
Interface implementations
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
7.4
Interface delegation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
7.5
Interfaces and COM
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
7.6
CORBA and other Interfaces
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
7.7
Reference counting
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
8
Generics
92
8.1
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
8.2
Generic class definition
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
8.3
Generic class specialization
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
8.4
A word about scope
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
9
Extended records
98
9.1
Definition
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
3
CONTENTS
9.2
Extended record enumerators
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
10 Class and record helpers
103
10.1 Definition
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
10.2 Restrictions on class helpers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
10.3 Restrictions on record helpers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
10.4 Inheritance
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
10.5 Usage
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
11 Objective-Pascal Classes
109
11.1 Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
11.2 Objective-Pascal class declarations
. . . . . . . . . . . . . . . . . . . . . . . . . . . 109
11.3 Formal declaration
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
11.4 Allocating and de-allocating Instances
. . . . . . . . . . . . . . . . . . . . . . . . . 113
11.5 Protocol definitions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
11.6 Categories
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
11.7 Name scope and Identifiers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
11.8 Selectors
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
11.9 The
id
type
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
11.10Enumeration in Objective-C classes
. . . . . . . . . . . . . . . . . . . . . . . . . . 117
12 Expressions
119
12.1 Expression syntax
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
12.2 Function calls
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
12.3 Set constructors
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
12.4 Value typecasts
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
12.5 Variable typecasts
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
12.6 Unaligned typecasts
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
12.7 The @ operator
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
12.8 Operators
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
12.8.1
Arithmetic operators
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
12.8.2
Logical operators
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
12.8.3
Boolean operators
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
12.8.4
String operators
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
12.8.5
Set operators
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
12.8.6
Relational operators
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
12.8.7
Class operators
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
13 Statements
134
13.1 Simple statements
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
13.1.1
Assignments
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
4
Plik z chomika:
Satoremihi7
Inne pliki z tego folderu:
bonk-0.6.tar.gz
(17 KB)
tera.7z
(2607 KB)
xvidcore-1.3.3.tar.gz
(799 KB)
last_x264.tar.bz2
(636 KB)
multicoreware-x265-e6b519dfbf81.zip
(890 KB)
Inne foldery tego chomika:
Pliki dostępne do 01.06.2025
Pliki dostępne do 16.11.2022
Pliki dostępne do 19.01.2025
Pliki dostępne do 19.04.2020
;)
Zgłoś jeśli
naruszono regulamin