rad studio (共通) -...
TRANSCRIPT
RAD Studio
Copyright(C) 2008 Embarcadero Technologies, Inc. All Rights Reserved.
1
2
3
MSBuild 5
6
8
9
11
RAD Studio Unicode 11
19
19
21
23
24
25
26
27
28
30
32
37
RAD StudioC++Builder 37
RAD StudioDelphi for Microsoft .NET 42
RAD Studio Delphi 45
Delphi 2009 C++Builder 2009 48
RAD Studio 59
IDE 60
IDE Windows Vista 66
67
68
72
73
76
77
RAD Studio
iii
77
79
80
82
82
DUnit 84
UML 89
91
92
UML 2.0 92
95
97
UML 97
97
98
UML 98
99
99
99
100
100
101
102
OCL 102
103
105
QA 106
107
108
109
111
114
DelphiC++ 115
Delphi 116
Delphi 116
Delphi 117
DelphiC++ 119
Delphi 119
RAD Studio
iv
DelphiC++ 120
Delphi 120
123
124
125
125
Delphi C++ 126
127
127
MSBuild 128
129
130
130
132
132
Unicode 133
Unicode 141
C++ 142
143
146
CPU 147
147
147
148
152
153
154
154
155
155
156
157
158
159
160
163
RAD Studio
v
164
165
166
168
169
DelphiC# 169
170
170
173
173
174
176
177
178
179
181
181
182
182
183
183
184
184
184
185
185
186
187
187
187
188
188
189
189
190
190
191
IDE 191
RAD Studio
vi
192
193
.NET 193
Windows 194
194
195
195
196
196
197
IDE Delphi 7 198
198
VCL 198
199
ToDo 199
200
201
203
203
204
206
External Translation Manager 206
207
External Translation Manager 208
210
210
212
212
213
213
215
215
218
218
219
219
220
RAD Studio
vii
220
221
222
222
223
223
223
224
225
UML 2.0 225
225
226
227
228
229
238
241
242
243
UML 1.5 243
UML 2.0 252
UML 269
272
286
286
287
287
Object Constraint LanguageOCL 288
OCL 288
OCL 289
OCL 289
290
FCC 290
291
293
294
FCC 295
295
300
RAD Studio
viii
301
302
302
XMI 303
IBM Rational RoseMDL 303
XMI 304
304
305
306
307
307
308
309
313
316
316
XML Metadata InterchangeXMI 317
[ ] 318
[] 319
321
Delphi 322
Delphi 322
Delphi 324
Align Delphi 325
Application Delphi 325
Assert Delphi 326
Delphi 326
Delphi 327
Delphi 328
DEFINE Delphi 328
DENYPACKAGEUNIT Delphi 328
DESCRIPTIONDelphi 329
DESIGNONLY Delphi 329
ELSEDelphi 329
ELSEIFDelphi 330
ENDIF 330
Delphi 330
RAD Studio
ix
Delphi 331
Delphi 331
Delphi 331
Delphi 332
HINTSDelphi 332
HPPEMITDelphi 333
IFDEF Delphi 333
IF Delphi 333
IFEND Delphi 334
IFNDEF Delphi 335
IFOPT Delphi 335
335
IMPLICITBUILDDelphi 336
336
Delphi 336
Delphi 337
Delphi 337
Delphi 338
Delphi 338
Delphi 339
Delphi 339
MESSAGE Delphi 340
METHODINFO Delphi 340
MINENUMSIZEDelphi 341
OPENSTRINGSDelphi 341
OPTIMIZATIONDelphi 341
Delphi 342
Pentium FDIV Delphi 342
NODEFINE 343
NOINCLUDEDelphi 343
343
Real48 Delphi 344
REGION 344
Delphi 344
RUNONLY Delphi 345
Delphi 345
Delphi 346
Delphi 347
UNDEF Delphi 347
RAD Studio
x
VARSTRINGCHECKSvar Delphi 347
Delphi 348
WARNINGSDelphi 348
349
Delphi 350
WRITEABLECONSTDelphi 350
PE Delphi 350
Delphi 351
Pointer Math Delphi 352
Delphi 353
354
Delphi 562
I/O 563
563
564
Delphi 565
566
605
645
Win32 660
676
686
696
Delphi 705
712
736
740
751
759
RAD Studio 785
785
785
786
787
788
[] 788
790
[VCL ] 790
RAD Studio
xi
792
794
794
794
ADO 795
795
796
796
797
797
798
798
798
799
SQL 799
800
801
801
IBUpdateSQL IBDataSet 802
803
[] 805
805
[] 806
[] 806
[] 806
[] 806
[] 807
[] 807
[] 807
[] 807
[] 807
[] 808
[] 808
[] 808
[] 808
[] 808
[] 808
[] 809
809
RAD Studio
xii
811
812
812
812
812
: () 812
812
813
813
813
? 813
? 814
814
814
IMPLEMENTATION 814
814
? 815
815
Windows
815
815
816
. ?
816
?
816
816
816
817
? 817
817
? 817
Uses 817
817
818
821
821
[] 822
[] 823
[COM ] 823
RAD Studio
xiii
COM+ 824
COM+ 824
[COM+ ] 825
825
[] 826
826
827
[] 827
828
828
829
829
830
830
831
831
[ ] 831
832
Web 833
[SOAP ] 833
SOAP 833
834
834
835
836
WSDL 836
WSDL 837
Web 838
Web 839
/ WebSnap 839
WebSnap 840
WebSnap 841
Web App 842
XML 842
XML 1 843
XML 2 844
XML 3 845
[] 845
[] 845
RAD Studio
xiv
[] 845
[ ] [ActiveX ] 847
[ ] 848
HTML 849
AAnchorHTML 850
851
DIV HTML 851
HR HTML 852
IMG HTML 853
INPUT HTML 854
SELECT HTML 857
SPAN HTML 858
TABLE HTML 858
TEXTAREA HTML 860
861
IMAGE 862
INPUT 862
862
863
864
864
864
865
865
866
[] 867
868
UDDI 882
C++ 883
945
[] 945
945
946
946
946
946
[ ] 947
947
947
RAD Studio
xv
[Web ] 947
[] 949
[ ] 949
[][] 950
[] 950
[...] 950
[] 951
[ ] 951
[ ] 951
[ ] 951
[] 952
[] 952
952
Propeditors 953
958
958
959
959
960
960
DDE 961
962
962
963
965
966
966
968
968
969
970
971
971
972
973
974
975
976
976
RAD Studio
xvi
977
978
978
979
979
980
980
981
982
984
[ ] 985
987
987
[ ] 987
988
989
[ ] 990
991
[] 991
991
[...] 992
[] 992
993
[?] 993
994
994
[] 995
[] 995
[...] 995
[] 996
[ActiveX ] 996
[] 996
[][] 996
[] 996
[] 997
[] 997
[] 997
[ActiveX ] 997
[] 997
RAD Studio
xvii
998
[] 998
999
1000
1000
1000
[] 1001
[] 1001
[] 1001
[ ] 1002
[ ] 1002
[] 1002
[ ] 1002
1003
1007
[/] 1008
/ 1008
1009
1009
1010
1010
1011
/ 1012
1012
[] 1013
[] 1014
1014
1015
1015
1016
1016
[ ] 1017
1018
1019
/ 1019
QA 1020
QA 1021
[] 1022
1023
RAD Studio
xviii
1024
1024
1025
1025
XMI 1026
XMI 1026
1027
CodeGuard 1028
1030
[] 1056
1057
1057
Visual Studio 1058
[] 1058
[ ] 1059
[ ] 1059
1060
XML 1060
[ ...] 1063
[Web ] 1065
1065
1070
1071
Code Explorer 1087
1088
[ ] 1088
1090
[] 1090
1091
1091
[] 1092
[ ] 1092
[ ] 1093
1097
1097
[] 1098
[] 1099
ToDo 1099
[To-Do ] [ToDo ] 1100
RAD Studio
xix
ToDo 1100
1100
1101
1102
1104
1105
1109
1109
1109
[] 1109
[/] 1110
[ ] 1110
[CodeGuard ] 1110
[] 1111
1111
[] 1111
[ ] 1112
[] 1112
[ ] 1112
[] 1113
[] 1113
[] 1113
[] 1114
[ ] 1115
[] 1117
[ ...] 1118
Win 1118
1118
1120
1123
1123
[] 1123
1124
1124
1125
1125
1126
1126
1127
RAD Studio
xx
C++ 1127
Delphi 1127
1129
1129
BRIEF 1130
IDE 1132
1134
Epsilon 1137
Visual Basic 1139
Visual Studio 1141
Emacs 1142
1145
IDE 1145
RAD Studio 1147
1150
1150
1152
1152
1166
- 1166
1167
1168
1168
GUI 1169
1172
GUI 1173
1176
QA GUI 1176
1179
1180
1180
- 1181
1182
UML 1.5 1183
UML 1.5 1183
UML 1.5 1187
UML 1.5 1195
UML 1.5 1196
RAD Studio
xxi
UML 1.5 1198
UML 1.5 1202
UML 1.5 1206
1208
UML 2.0 1209
UML 2.0 1209
UML 2.0 1212
UML 2.0 1220
UML 2.0 1222
UML 2.0 1224
UML 2.0 1225
UML 2.0 1231
UML 2.0 1235
1237
1238
1238
1241
a
RAD Studio
xxii
1
RAD Studio Delphi
( 2 ) 2007 IDE MSBuild.exe
( 19 ) RAD Studio Win32 .NET RAD Studio
( 24 )
( 32 ) RAD Studio IDE RAD Studio http://www.codegear.com
( 82 ) RAD Studio
UML ( 89 ) : UML
( 111 ) RAD Studio
1 RAD Studio
1
1
http://www.borland.com/delphihttp://www.borland.com/delphi
1.1 2007 IDE MSBuild.exe
( 3 ) IDE IDE 3 .exe.dll.obj .bpl 3
C++
(F9) IDE
MSBuild ( 5 ) IDE MSBuild IDE Microsoft MSBuild MSBuild XML MSBuild Microsoft http://msdn.microsoft.com
( 6 ) ... .dproj .cbproj
RAD Studio 1.1
2
1
http://msdn.microsoft.comhttp://msdn.microsoft.com
( 8 ) C++Builder 2009 Delphi for Win32 2009 C++Builder 2007 2009 .optset
( 9 ) .targets MSBuild XML .targets MSBuild .targets .NET Framework SDK MSBuild "Zip""SVNCheckout""Mail"
.targets MSBuild XML
IDE .targets
( 11 ) C++
RAD Studio Unicode ( 11 ) RAD Studio 2009 ANSI Unicode RAD Studio Unicode Unicode
1.1.1
IDE IDE 3 .exe.dll.obj .bpl 3
C++
(F9) IDE
...
1.1 RAD Studio
3
1
Delphi C++
Delphi Delphi Delphi
...
F1
...
IDE [][] [] 3 ...
... 1 .optset
MSBuild
IDE Microsoft MSBuild MSBuild Windows [] [RAD Studio ] MSBuild.exe
MSBuild ( 5 )
( 6 )
( 125 )
( 872 )
( 127 )
RAD Studio 1.1
4
1
MSBuild ( 128 )
( 8 )
( 132 )
1.1.2 MSBuild
IDE MSBuild IDE Microsoft MSBuild MSBuild XML
MSBuild Microsoft http://msdn.microsoft.com
MSBuild
Delphi .bdsproj IDE MSBuild Delphi .dproj C++ .cbproj
MSBuild .groupproj
IDE MSBuild MSBuild
.dproj MSBuild.exe
MSBuild Windows CodeGear RAD Studio RAD Studio [RAD Studio ] MSBuild
[RAD Studio ] MSBuild
BDS=c:\program files\CodeGear\RAD Studio\5.0 FrameworkDir=c:\Windows\Microsoft.NET\Framework FrameworkVersion=v2.0.50727
... 2 C++Builder
... C++Builder MSBuild ...
1.1 RAD Studio MSBuild
5
1
http://msdn.microsoft.com
MSBuild
1. .RC
2. .ASM
3. .PAS
4. .CPP
[ ] [ ]
( 3 )
( 196 )
( 874 )
MSBuild ( 128 )
( 6 )
( 127 )
( 125 )
( 77 )
1.1.3
... .dproj .cbproj
3
BaseDebugRelease 3
Base
Debug
Release TRACE ASSERT
Base Debug Release Base
1
...
RAD Studio 1.1
6
1
Base Debug Release Base
Base
1
[]
Base
IDE
( 937 )
MSBuild ( 5 )
( 127 )
( 125 )
1.1 RAD Studio
7
1
( 132 )
( 937 )
1.1.4
C++Builder 2009 Delphi for Win32 2009 C++Builder 2007 2009
.optset
... ... ... .optset .optset ... ReleaseDebug ... .optset ...
MSBuild .optset XML
IDE Debug 1 1 Debug ...
.optset
RAD Studio 1.1
8
1
... ...
2
1
...
1
[]
( 132 )
[ ] ( 871 )
( 196 )
( 127 )
( 125 )
1.1.5
.targets MSBuild XML .targets MSBuild
.targets .NET Framework SDK MSBuild "Zip""SVNCheckout""Mail"
1.1 RAD Studio
9
1
.targets MSBuild XML
IDE .targets
.targets
.targets .targets IDE MSBuild
.targets .targets .targets MSBuild .targets MSBuild .targets MSBuild .targets
.targets
.targets MSBuild
...
http://msdn2.microsoft.com/ja-jp/library/t50z2hka.aspx
.targets
.targets .targets MSBuild
.targets Windows microsoft.net\Framework\v2.0.xxx\Borland.Cpp.Targets CodeGear .targets .targets IDE
: .targets http://msdn2.microsoft.com/ja-jp/library/ms164312.aspx
( 129 )
RAD Studio 1.1
10
1
http://msdn2.microsoft.com/ja-jp/library/t50z2hka.aspxhttp://msdn2.microsoft.com/ja-jp/library/ms164312.aspx
1.1.6
C++
2
C++
I/O
1 #define
23
.cpp
[ ...] ( 1063 )
1.1.7 RAD Studio Unicode
RAD Studio 2009 ANSI Unicode
RAD Studio Unicode
1.1 RAD Studio RAD Studio Unicode
11
1
Unicode
AnsiString WideString
AnsiString
AnsiString string
AnsiString
Null
-8 -4 0 Length
RAD Studio AnsiString 2 CodePage ElemSize AnsiString UnicodeString
WideString
WideString Windows BSTR WideString COM WideString UnicodeString
UnicodeString
RAD Studio string UnicodeString Unicode ANSI
Delphi Char WideChar PChar PWideChar
C++ [_TCHAR ( 943 )] wchart_t char _TCHAR
UnicodeString
Null
-12 -10 -8 -4 0 Length * elementsize
UnicodeString AnsiString UnicodeString AnsiString
UnicodeString Object Pascal
type StrRec = record CodePage: Word; ElemSize: Word; refCount: Integer; Len: Integer; case Integer of 1: array[0..0] of AnsiChar; 2: array[0..0] of WideChar; end;
UnicodeString UnicodeString AnsiString UnicodeString UnicodeString AnsiString
AnsiString CodePage ElemSize
UnicodeString UTF-16
UTF-16
UTF-16
Windows API
RAD Studio Unicode RAD Studio 1.1
12
1
UTF-16
BMPBasic Multilingual Plane UTF-16 Char16
Unicode MBCS
UnicodeString COM WideString
UnicodeString
Unicode ANSI
C++Builder
AnsiString
UnicodeString 1 AnsiString
var C: Char; S: string; begin ... C := S[1]; ... end;
S 1 UniqueStringX Unicode UniqueStringX
C++Builder
C++ Builder UnicodeString Delphi AnsiString VCL Unicode
Delphi C++Builder Unicode Unicode
Delphi
{$IFDEF UNICODE}
C++Builder
#ifdef _DELPHI_STRING_UNICODE
string AnsiString UnicodeString
Char WideChar1 2 UTF-16
PChar PWideChar
C++ System::String UnicodeString
1.1 RAD Studio RAD Studio Unicode
13
1
Delphi AnsiString string
AnsiString
WideString
AnsiCharPAnsiChar
ANSI UnicodeANSI
+
+
+
Concat( , )
Length() SizeOf SizeOf Length
Copy(, , ) Char
Pos(,) Char
CompareStr()
CompareText()
...
FillChar()
FillChar(Rect, SizeOf(Rect), #0)
FillChar(WndClassEx, SizeOf(TWndClassEx), #0)WndClassEx.cbSize := SizeOf(TWndClassEx);
Windows API
API WideString"W"
PChar()
GetModuleFileName
function ModuleFileName(Handle: HMODULE): string; var Buffer: array[0..MAX_PATH] of Char; begin SetString(Result, Buffer, GetModuleFileName(Handle, Buffer, Length(Buffer))); end;
GetWindowText
function WindowCaption(Handle: HWND): string; begin SetLength(Result, 1024); SetLength(Result, GetWindowText(Handle, PChar(Result), Length(Result))); end;
function StripHotKeys(const S: string): string; var I, J: Integer; LastChar: Char; begin SetLength(Result, Length(S)); J := 0; LastChar := #0; for I := 1 to Length(S) do begin
RAD Studio Unicode RAD Studio 1.1
14
1
if (S[I] &) or (LastChar = &) then begin Inc(J); Result[J] := S[I]; end; LastChar := S[I]; end; SetLength(Result, J); end;
"" AnsiString UnicodeString
SizeOf() ? Length()
Move(... CharCount * SizeOf(Char))? Move( ,,, CharCount * SizeOf(Char))
? AnsiStringSizeOf(Char) TEncoding
FillChar(, , ) ? #0 *SizeOf(Char) StringOfChar
GetProcAddress(, ) ? PWideChar
PChar ? {IFDEF} PByte = PChar {POINTERMATH }
Set of Char
in ? >#255 "set WideChar char " CharinSet
in LeadBytes ? LeadBytes MBCS ANSI UTF-16 ""#$D800 #$DBFF #$DC00 #$DFFF IsLeadChar ANSI LeadBytes WideChar
? TCharacter Character IsDigitIsLetterIsLetterOrDigitIsSymbolIsWhiteSpaceIsSurrogatePair Unicode.org
AnsiString(Pointer(foo))
-
PChar()
PAnsiChar()
AnsiString StringRefCountStringCodePageStringElementSize
PChar PAnsiChar PWideChar
AnsiXXXX AnsiCompareString
string UnicodeString
Write/Writeln Read/Readln
1.1 RAD Studio RAD Studio Unicode
15
1
ANSI/OEM
ANSI OEM
TFDDText File Device Drivers
TTextRec TFileRec
WideChar ANSI/OEM
Unicode I/O TEncoding TStrings System.Text.Encoding
PByte?$POINTERMATH ON PAnsiChar
StringElementSize
StringCodePage
StringRefCount
RTL Move RTL RValue
TStrings UnicodeStrings string
TWideStrings WideStringBSTR
TStringStream
- ANSI
TStringStream TStringBuilder
TEncoding
UTF-8
UTF-16
BOM
DFM
ASCII-7 UTF-8
"#"
UTF-8
UTF-8
BOMByte Order Mark
UTF-8 EF BB BF
UTF-16 FF FE
RAD Studio Unicode RAD Studio 1.1
16
1
http://msdn.microsoft.com/en-us/library/system.text.encoding
UTF-16 FE FF
Unicode
1.
2.
3.
4.
Unicode ( 133 )
Delphi
Delphi UnicodeString WideString AnsiString AnsiChar Unicode 1057 1058
1057: [ ('%s' '%s')]IMPLICIT_STRING_CAST AnsiString AnsiChar Unicode UnicodeString WideString
1058: [ ('%s' '%s')]IMPLICIT_STRING_CAST_LOSS Unicode UnicodeString WideString AnsiString AnsiChar
1059: [ ('%s' '%s')]EXPLICIT_STRING_CASTAnsiString AnsiChar Unicode UnicodeString WideString
1060: [ ('%s' '%s')]EXPLICIT_STRING_CAST_LOSSUnicode UnicodeString WideString AnsiString AnsiChar
Move()
FillChar()
UTF-8
Delphi 20052006 2007
ANSI ?codepage
UTF-8 BOM
AnsiString AnsiChar IDE
1.1 RAD Studio RAD Studio Unicode
17
1
AnsiString TBytes Byte
PChar PByte $POINTERMATH ON
UnicodeString WideChar
Char > #$7F #$FF ANSI
"U" Unicode
Foo = U'This is a Unicode string';
Bar = 'This is an ANSI string';
Delphi 2009 C++Builder 2009 ( 48 )
Unicode ( 133 )
TCHAR
Unicode ( 141 )
RAD Studio Unicode RAD Studio 1.1
18
1
1.2 RAD Studio Win32 .NET RAD Studio
( 19 ) IDE RAD Studio CodeGear .NET Debugger CodeGear Win32 Debugger IDE RAD Studio ...
( 21 ) IDE IDE
( 23 ) Vista "" [] ("")
1.2.1
IDE RAD Studio CodeGear .NET Debugger CodeGear Win32 Debugger IDE
RAD Studio
...
1.2 RAD Studio
19
1
1
/
//
C++ [/] C++
Delphi [/] Delphi
1 1 4
Win32 1
1 F1
CPU
RAD Studio 1.2
20
1
Vista [] ( 1084 ) []
CPU
FPU CPU SSE
TCP/IP
( 21 )
( 154 )
( 148 )
( 146 )
( 154 )
( 153 )
( 155 )
( 147 )
1.2.2
IDE IDE
rmtdbg105.exe RAD Studio RAD Studio IDE
3
1.2 RAD Studio
21
1
IDE
.dll .exe
Delphi for Win32 .rsm
Delphi for .NET .rsm .pdb
C++ .tds
C# .pdb
1
:
( 155 )
( 156 )
( 157 )
( 158 )
RAD Studio 1.2
22
1
1.2.3
Vista ""
[] ("")
[] ( 1084 )
1.2 RAD Studio
23
1
1.3
( 25 ) ALM ALM
( 26 ) 1 GUI 1 RAD Studio Windows Web VCL Forms HTML
( 27 ) /SCM
( 28 ) RAD Studio .NET Win32
.NET
DLL Win32
Delphi VCL .NET Win32 Win32 DLL
( 30 ) 1 .cab .msi XCOPY FTP
RAD Studio 1.3
24
1
1.3.1
ALM
ALM
1 /
RAD Studio .NET IDE Windows ASP.NET Web Web
IDE VCL.NET VCL .NET MDI SDI
RAD Studio UML
RAD Studio MSBuild
1.3 RAD Studio
25
1
( 3 )
( 125 )
( 19 )
1.3.2
1 GUI 1 RAD Studio Windows Web VCL Forms HTML
Windows Web Web IDE RAD Studio
Windows Web HTML Windows MainMenu Windows ContextMenu
HTML Windows HTML
VCL
VCL VCL.NETDelphi C++'padding'
[] [] []
RAD Studio 1.3
26
1
ASP.NET
( 181 )
VCL ( 198 )
1.3.3
/SCM
1 1
11 1 RAD Studio diffs
HTML XML
CVS VSS InterBaseMicrosoft AccessMS SQL ServerIBM DB2OracleDBMS
1.3 RAD Studio
27
1
RAD Studio RAD Studio
CVS RAD Studio RAD Studio 2 RAD Studio RAD Studio
:
( 177 )
1.3.4
RAD Studio .NET Win32
.NET
DLL Win32
RAD Studio 1.3
28
1
Delphi VCL .NET Win32 Win32 DLL
.NET DLL Win32 .NET Resource DLL Wizard Win32 DLL DLL
.resx .rc IDE
VCL
External Translation ManagerETMIDE ETM
XML default.tmx RAD Studio\bin
.nfn.NET
.dfnWin32
.resx.NET
.drcil .resx .resx
.rcWin32 DLL .drc .resx .resx
1.3 RAD Studio
29
1
.tmx .tmx .tmx
.bdsproj External Translation Manager .bdsproj .bdsproj
:
( 203 )
( 207 )
( 204 )
( 204 )
External Translation Manager ( 206 )
1.3.5
1 .cab .msiXCOPY FTP
.NET
.NET Framework 1 .exe
GAC.NET Framework SDK /sn.exeal.exe GAC gacutil.exe Framework SDK
VCL.NET
VCL .NET VCL for .NET .NETFramework
VCL for .NET .NET FrameworkBorland.Delphi.dll RAD Studio Borland.VclRtl.dll Borland.Vcl.dll
RAD Studio 1.3
30
1
.NET Framework
.NET Framework .NET Framework Microsoft dotnetfx.exe .NET .NET Framework dotnetfx.exe .NET Framework SDK
Win32
Win32 Win32
Windows
InstallAware InstallAware Windows MSIRAD Studio DVD InstallAware
RAD Studio
RAD Studio
deploy.htm RAD Studio
license.txt RAD Studio
readme.htm RAD Studio RAD Studio
C:\Program Files\CodeGear\RAD Studio\n.n
RAD Studio
.NET Framework
COM
1.3 RAD Studio
31
1
1.4 RAD Studio IDE RAD Studio http://www.codegear.com
( 37 ) ""
Delphi 2009 C++Builder 2009 ( 48 ) Delphi C++Builder Delphi C++Builder ANSI UnicodeUnicodeStringDelphi 2009 C++Builder 2009 Unicode Unicode CodeGear Unicode Unicode http://www.unicode.orgUnicode XMLJavaECMAScriptJavaScriptLDAPCORBA 3.0WML ISO/IEC 10646 Unicode Unicode 1 Unicode / Web Unicode Web
RAD Studio ( 59 ) RAD Studio Delphi Win32 IDERAD Studio IDE IDE RAD Studio
RAD Studio 1.4
32
1
http://www.borland.com/delphihttp://www.unicode.org
IDE ( 60 ) RAD Studio IDEIDE IDE RAD Studio
Windows Vista
IDE Windows Vista ( 66 ) IDE Vista
Vista [][]
Vista
Aero
( 67 ) RAD Studio IDE
1.4 RAD Studio
33
1
( 68 ) [IDE] UTF8 RAD Studio RAD Studio
To-Do
( 72 ) HTML HTML
( 73 ) RAD Studio .dproj .exe.dll.bpl ... ... ...
RAD Studio 1.4
34
1
( 76 ) RAD Studio 2
1. RAD Studio .bdstemplatelib XML RAD Studio
2. .bdstemplatelib IDE ...
IDE
RADStudio
:
.bdstemplatelib 1 .bdstemplatelib
1.4 RAD Studio
35
1
( 77 ) C++
Delphi.pas
C/C++.c/.cpp
.asm
.rc
Delphi C/C++
( 77 )
RAD Studio
Microsoft .NET Framework SDK
CodeGear Web
RAD Studio
( 79 ) "" ->...-> Ctrl ... Delphi
( 80 )
RAD Studio 1.4
36
1
1.4.1
""
RAD StudioC++Builder ( 37 ) RAD Studio C++
RAD StudioDelphi for Microsoft .NET ( 42 ) RAD Studio Delphi for Microsoft .NET
RAD Studio Delphi ( 45 ) RAD Studio Win32 Delphi
1.4.1.1 RAD StudioC++Builder
RAD Studio C++
C++Builder 2007
MSBuild C++ MSBuild XML MSBuild .cbproj MSBuild MSBuild
[] ... C++ -Vb [ ] C++ ( 196 )IDE ( 937 )
IDE ( 877 )
... MSBuild 3 C++ ( 6 )
... .optset ( 8 )
MSBuild Delphi.pasC/C++.c/.cpp.asm.rc ( 77 )
[] ... []
1.4 RAD Studio
37
1
[] C++ ( 872 )
( 874 )
.targets .targets MSBuild XML ( 9 )
My Documents\RAD Studio\5.0\Demos [] Microsoft Windows Vista Program Files
Delphi C++ C++Builder Delphi Delphi DesignIDE100.bpl DesignIntfDesignEditorsToolsAPI IDE C++Builder Delphi C++ ( 126 )
C++
DUnit DUnit JUnit
C++Builder
DUnit GUI DUnit GUI GUI
C++Builder Web
C++Builder Web
WSDL
C++Builder Web Delphi eBayAmazonMapPoint Web
IDE
IDE
Vista XP IDE Windows Vista XP IDE IDE Windows Vista ( 66 )
Common\source1.cpp Product\source1.cpp IDE
RAD Studio Borland Developer Studio 2006 ShareMem SimpleShareMem VCL RTLWin32
RAD Studio 1.4
38
1
( 696 )
[] Ctrl ...
SVN ( 1091 )
C++ []
[] ( 77 )
...
CPU CPU CPU IDE CPU 2 CPU ( 1076 )
[] ( 1075 )
IDE CodeGear ( 1033 )
... ( 159 )
... [] ( 1048 )
Ctrl
Together
Together C++
C++Builder 2007 Together IDE C++ Builder 2007 Together
C++ C++ C++
Enterprise
Professional Enterprise
1.4 RAD Studio
39
1
Enterprise
Together ( 91 )Modeling Applications With TogetherTogether
: Together
RAD Studio
dbExpress
Unicode OracleInterbaseMySQL dbExpress
Interbase 2007 MySQL 4.1 5
dbExpress dbExpress
dbExpress 4
dbExpress VCL API dbExpress VCL
dbExpress VCL VCL API TSQLConnection TSQLDataSet dbExpress Framework CompatibilitydbExpress
dbExpress
Delphi Delphi
String
1 DCC32 DCCIL
VCL RTL
VCL
AJAX RAD Studio AJAX RAD VCL for the Web
Microsoft Vista RAD Studio Vista
VCL VCL
TFileOpenDialog
TFileSaveDialog
RAD Studio 1.4
40
1
TTaskDialog
TCustomFileDialog
TCustomFileOpenDialog
TCustomFileSaveDialog
TCustomTaskDialog
TFavoriteLinkItem
TFavoriteLinkItems
TFavoriteLinkItemsEnumerator
TFileTypeItem
TFileTypeItems
TTaskDialogBaseButtonItem
TTaskDialogButtonItem
TTaskDialogButtons
TTaskDialogButtonsEnumerator
TTaskDialogProgressBar
TTaskDialogRadioButtonItem
AttemptToUseSharedMemoryManager
GetMemoryManagerState
GetMemoryMap
GetMinimumBlockAlignment
RegisterExpectedMemoryLeak
SetMinimumBlockAlignment
ShareMemoryManager
UnregisterExpectedMemoryLeak
NeverSleepOnMMThreadContention
ReportMemoryLeakOnShutdown
MSBuild ( 5 )
Delphi
C++ ( 6 )
( 872 )
( 877 )
MSBuild ( 128 )
Win32 ( 696 )
( 1091 )
( 97 )
1.4 RAD Studio
41
1
( 9 )
( 77 )
dbExpress
1.4.1.2 RAD StudioDelphi for Microsoft .NET
RAD Studio Delphi for Microsoft .NET
Delphi for Microsoft .NET
ASP.NET VCL.NET .NET Delphi 2007 for Win32 C++Builder 2007
Delphi for .NET Delphi for .NET ( 645 )
C# Visual Basic for .NETC# IDE C#
Delphi for .NET Delphi C#
" " RAD Studio
ASP.NET 2.0 AJAX Extensions 1.0 ASP.NET ASP.NET
3 2 HTML/CSS
ASP.NET ( 176 )
HTML IDE ...
RAD Studio Windows
ASP.NET
.NET 2.0
ASP.NET 2.0 ASP.NET Web ASP.NET
ASP.NET 2.0
Web
RAD Studio 1.4
42
1
ASP.NET ECO
AJAX AJAX AJAX ASP.NET Web ASP.NET 2.0 AJAX Extensions 1.0 ASP.NET Microsoft ASP.NET AJAX http://www.asp.net/ajax/
Cassini Web IIS Web Cassini F9
RAD Studio ASP.NET DBX4 DBX4
Microsoft Managed Debug AssistantsMDA ( 1044 )
( 645 )
( 987 )
Together
Together
Delphi for .NET Together
Together
RAD Studio
SQL http://www.activequerybuilder.com/hs15.html
dbExpress
dbExpress
dbExpress Delphi
API API dbExpress
API dbExpress VCL dbExpress VCL
dbExpress
DBX3 ADO.NET 2.0
1.4 RAD Studio
43
1
http://www.asp.net/ajaxhttp://www.activequerybuilder.com/hs15.html
9
1
DBXMetaDataNames
dbExpress DbxMetaDataProvider
ADODbx
ADO.NET 2.0 ADO.NET 1.1 BDP.NET AdoDbx dbExpress 4 ADO.NET 2.0
Borland.Data.AdoDbxClientProvider.pas
DBXClient
DBXClient DBX4 DBX4 TCP/IP
DBXClient Blackfish SQL
Blackfish SQL
Blackfish SQL JBuilder JDataStore Delphi for .NET Blackfish SQL .NET .NET Compact Framework Blackfish SQL ADO.NET 2.0 DBX4
Blackfish SQL API
Borland.Data.DataStore
Borland.Data.DataStore.FromJava.JDataStore.Cons
Borland.Data.DataStore.FromJava.JDataStore.Driver
Borland.Data.DataStore.FromJava.JDataStore.Driver.Cons
Blackfish SQL C#
UDF
ASP.NET
dbExpress 4 Blackfish SQL ASP.NET
RAD Studio 1.4
44
1
machine.config web.config Web
DBXProvider Blackfish SQLProvider
DBX4 SQLDataStore ASP.NET machine.config web.config Web
VCL.NET
.NET 2.0 64
Microsoft Vista
VCL VCL
TDBXConnectionEx
TDBXCursorValue
TDBXMemoryConnectionFactory
TDBXMetaDatabaseColumnNames
TDBXMetaDataCommandsEx
TDBXMetaDataCommands
TDBXMetaDataTableTypesEx
TDBXPropertyNames
TDBXPropertyNamesEx
TDBXStreamReader
TDBXByteStreamReader
TDBXLookAheadStreamReader
TDBXValueTypeFlagsEx
TDBXWideStringValueEx
TDBXDatabaseMetaDataEx
ECO
ECO ASP.NET VCL.NET
ECO RAD Studio
1.4.1.3 RAD Studio Delphi
RAD Studio Win32 Delphi
IDE
MSBuild IDE MSBuild IDE MSBuild RAD Studio Windows [] MSBuild.exe
DOS
1.4 RAD Studio
45
1
Vista XP IDE Vista XP IDE
[] ...
Windows
...
CPU CPU CPU IDE CPU 2
[]
IDE
...
... []
Ctrl
RAD Studio
dbExpress
Unicode OracleInterbaseMySQL dbExpress
Interbase 2007 MySQL 4.1 5
dbExpress dbExpress
dbExpress 4
dbExpress VCL API dbExpress VCL
dbExpress VCL VCL API TSQLConn
RAD Studio 1.4
46
1
ection TSQLDataSet dbExpress Framework CompatibilitydbExpress
dbExpress
Delphi Delphi
String
1 DCC32 DCCIL
VCL
AJAX RAD Studio Web AJAX RAD VCL
Microsoft Vista RAD Studio Vista
VCL
TFileOpenDialog
TFileSaveDialog
TTaskDialog
TCustomFileDialog
TCustomFileOpenDialog
TCustomFileSaveDialog
TCustomTaskDialog
TFavoriteLinkItem
TFavoriteLinkItems
TFavoriteLinkItemsEnumerator
TFileTypeItem
TFileTypeItems
TTaskDialogBaseButtonItem
TTaskDialogButtonItem
TTaskDialogButtons
TTaskDialogButtonsEnumerator
TTaskDialogProgressBar
TTaskDialogRadioButtonItem
MSBuild ( 5 )
( 127 )
( 872 )
IDE ( 191 )
1.4 RAD Studio
47
1
dbExpress
( 1091 )
1.4.2 Delphi 2009 C++Builder 2009
Delphi C++Builder
Delphi C++Builder ANSI UnicodeUnicodeStringDelphi 2009 C++Builder 2009
Unicode Unicode CodeGear Unicode Unicode http://www.unicode.orgUnicode XMLJavaECMAScriptJavaScriptLDAPCORBA 3.0WML ISO/IEC 10646 Unicode Unicode 1
Unicode / Web Unicode Web
Unicode
IDE Unicode IDE Unicode UnicodeString Unicode RAD Studio Unicode ( 11 )
SizeOf(Char) 1 2 Length(MyString)
Delphi 2009 C++Builder 2009 Unicode ( 133 ) Unicode
2009 Delphi 2009 C++Builder 2009
Delphi C++Builder .dproj.cbproj .bdsproj Delphi C++ .2007
Delphi C++
.dproj.2007
MSBuild IDE Delphi 2009 C++Builder 2009
Delphi 2009 C++Builder 2009 RAD Studio 1.4
48
1
http://www.unicode.org
12
Unicode
Unicode Unicode Unicode Lucida Console 65001
1. [CodeGear RAD StudioRAD Studio ] [] [...] cmd
2.
3. [Lucida Console]
4. 65001 C:\chcp 65001
Delphi
Delphi
UnicodeString System
Delphi 2009 Win32 Delphi Delphi for .NET 2007 2 ( 645 )Delphi Win32
( 729 )Entropy Overload: Barry Kelly
$POINTERMATH [ON|OFF] $POINTERMATH ( 352 )
Delphi 4 2 UnicodeString W1057: ( 562 )W1058: ( 562 )W1059: ( 561 )W1060: ( 562 )
Exit
IDE
IDE
[...] ( 868 ) 1 2 [] ( 1046 ) []
Delphi C++Builder Delphi C++ Base Delphi C++Builder C++Builder 2007 [ ] ( 871 ) ( 8 )
[ ] [ ] 3
1.4 RAD Studio Delphi 2009 C++Builder 2009
49
1
http://barrkel.blogspot.com/2008/07/anonymous-method-details.html
[ ()]
[ ()]
[] [VCL ] [] [VCL ] ActiveX [] [] 2
[] C++ Delphi [][ ]Delphi [ ]Delphi Delphi C++0x
( 952 )
Delphi [ ] [ ] 4 ( 1115 ) ( 181 )
C++Builder 2009
C++0x C++Builder 2009 C++0x 11
alignof
noreturn final
explicit
extern
decltype
Unicode char16_t char32_t
UnicodeString AnsiString UnicodeString
[_TCHAR ] _TCHAR wchar_t char wchar_t UNICODE _UNICODE 2 wchar_t "_tmain" "_tWinMain" C++Builder 2009 ... TCHAR
Delphi Delphi C++ __classmethod Delphi
C++Builder 2009
Delphi 2009 C++Builder 2009 RAD Studio 1.4
50
1
Boost C++Builder 2009 Boost 1.35C++Builder 2009 Boost Boost #pragma Boost minmax #include Boost http://www.boost.org/doc/libs/1_35_0/libs/libraries.htm
... OMF 255
BRCC32.exe Microsoft RCBRC32 BRCC32
Delphi Delphi AnsiString C++ C++Builder 2009 Delphi
C++ ... [ ] []
C++Builder 2009
6 alignofchar16_tchar32_tdecltypestatic_assert __classmethod
9 -Ax alignasconstrexprnullptrconceptconcept_mapaxiomlate_checkrequiresthread_local
11 andand_eqbitandbit_orcomplnotnot_eqoror_eqxorxor_eq
4 C99 -An _Bool_Complex_Imaginaryrestrict
C++
C++Builder UML C++Builder UML UML
C++Builder
C++Builder "" "" C++Builder Gang of Four
HTML [] JavaScript
1.4 RAD Studio Delphi 2009 C++Builder 2009
51
1
http://www.boost.org/doc/libs/1_35_0/libs/libraries.htm
COM
Delphi 2009 C++Builder 2009 COM COM 1 ActiveX [] [ActiveX] [] COM COM Active Server COM+ COM+ ActiveX ActiveX COM
RIDL COM RIDL .tlb .res.dcu.obj .tlb IDE .tlb IDE
( 1105 ) .tlb .RIDL GenTLB.exe .TLB
.tlb .ridl
RIDL
.RIDL .RIDL
RIDL
3
[] RIDL
[] RIDL
[]
[] [] Delphi C++ IDE ''
[] []
ActiveX COM
( 1120 ) .tlb ... .tlb
Windows Vista Windows Vista
Delphi 2009 C++Builder 2009 RAD Studio 1.4
52
1
( 1084 )""
abort() 0x40000015 C/C++ ... OS OS "C/C++ "
dbExpress
Unicode OracleInterbaseMySQL dbExpress
dbExpress
TDBXConnectionEx TDBXConnection
WideString UnicodeString
TDBXValue TDBXWritableValue GetAs... SetAs... TDBXValue TDBXWritableValue As... AsBcd
TDBXCommand.Prepare TDBXCommand
DataSnap
DataSnap DataSnap DataSnap
TDSServer TDSServer TDSServerClass DBX ADO.NET
DataSnap TSqlServerMethod TDBXReader
Datasnap
1.4 RAD Studio Delphi 2009 C++Builder 2009
53
1
TRemoteDataModule TDSProviderConnection TDSProviderConnection dbExpress DataSnap DataSnap TRemoteDataModule TDSProviderConnection DataSnap
2
TPersistent
MethodInfo
DataSnap http://blogs.codegear.com/steveshaughnessy/2008/07/20/38912
VCL RTL
protected API protected API
CDN VCL : http://dn.codegear.com/article/38349
VCL RTL /
ExtCtrls TButtonedEdit TCategoryPanel/ TPanel
1 TCategoryPanelGroup
Character TCharacter
TLinkLabel
SysUtils TEncoding TStringBuilderA. Lanusse TStringBuilder
Controls TCustomHintTCustomHint TBalloonHint
Classes TStringReader TStringWriterTTextReader/Writer
Classes TStreamReader TStreamWriterTTextReader/Writer
VCL/RTL /
Unicode Unicode TEncoding SysUtils.TEncoding
TActionManager
DisabledImagesLargeImagesLargeDisabledImages
TApplication
ParentFont True
DefaultFont
TBitmap
Delphi 2009 C++Builder 2009 RAD Studio 1.4
54
1
http://blogs.codegear.com/steveshaughnessy/2008/07/20/38912http://dn.codegear.com/article/38349http://dn.codegear.com/article/38349http://blogs.codegear.com/andreanolanusse/2008/07/24/tiburon-building-strings-with-tstringbuilder
32
AlphaFormat
TButton
Windows XP
BS_COMMANDLINK BS_SPLITBUTTON Windows Vista
Windows Vista CommandLinkSplitButton Style CommandLinkHintDropDownMenuOnDropDownClick
ImagesImageIndexHotImageIndexDisabledImageIndexPressedImageIndexSelectedImageIndexDropDownMenuElevationRequiredWindows Vista ImageAlignmentImageMarginsCommandLinkHintStyle
OnDropDownClick
TComboBox
Windows XP
TextHint
TControl
ParentDoubleBufferedCustomHintParentCustomHint
TCustomListView
OnItemChecked
TDBImage
""
Proportional
TEdit/TLabeledEdit
Windows XP
ES_NUMBER
PasswordChar Windows XP
AlignmentNumbersOnlyTextHint
TGraphic
SupportsPartialTransparency
TImageList
TImageList
ColorDepth
TLabel
Windows Vista
GlowSizeWindows Vista
1.4 RAD Studio Delphi 2009 C++Builder 2009
55
1
TListView
Windows XP
Windows Vista
GroupViewGroupsGroupHeaderImages
OnItemChecked
THeaderControl
CheckBoxesNoSizingOverFlow
THeaderSection
CheckboxCheckedFixedWidthWindows XP
TMaskEdit
Windows XP
PasswordChar Windows XP
AlignmentTextHint
TMemo
CharCase
TObject
class function UnitName: string
function Equals(Obj: TObject): Boolean; virtual
function GetHashCode: Integer; virtual
function ToString: string; virtual
UTF-8
class function MethodAddress(const Name: ShortString): Pointer; overload
class function MethodAddress(const Name: string): Pointer; overload
function FieldAddress(const Name: ShortString): Pointer; overload
function FieldAddress(const Name: string): Pointer; overload
ShortString String UTF-8
class function ClassName: string
class function MethodName(Address: Pointer): string
TPanel
ShowCaption
TPopupActionBar
ActionBar
Style
TProgressBar
Delphi 2009 C++Builder 2009 RAD Studio 1.4
56
1
Windows XP
Windows Vista
StyleMarqueeIntervalBarColorBackgroundColorSmoothReverseState
TRadioGroup
WordWrap
TScreen
MessageFont
TTrayIcon
OnBalloonClick
TTreeView
Windows XP
PNG
DoubleBuffered
ParentDoubledBuffered
/Windows Vista
" " ActionManager / OS Windows Vista
Delphi 2009 C++Builder 2009 1 2007 Microsoft() Office Fluent(TM) "" TActionManager TActionManager Delphi IDE TActionManager
TRibbon
TRibbonApplicationMenuBar
TRibbonQuickAccessToolbar
Delphi Win32 VCL TActionManager Style
3 My Documents\RA
1.4 RAD Studio Delphi 2009 C++Builder 2009
57
1
D Studio\6.0\Demos\DelphiWin32\VCLWin32\RibbonControls
Microsoft Windows Vista
Delphi 2009 C++Builder 2009 Windows Vista
/
Delphi C++Builder ITE ETM
ITE IDE ITE ITE
ETMDFM ETM ITE
IDE [] []
IDE F1
[] [RAD Studio ]
[] [] CDNCodeGear Developer NetworkGetting the Best Results with RAD Studio Online Help
API protected protected API
RAD Studio Unicode ( 11 )
Unicode ( 133 )
( 645 )
( 729 )
Pointer Math Delphi ( 352 )
[...] ( 952 )
( 6 )
[] ( 872 )
Delphi 2009 C++Builder 2009 RAD Studio 1.4
58
1
http://dn.codegear.com/article/37562http://dn.codegear.com/article/37562
[ ] ( 877 )
( 132 )
TCHAR
C++0x C++Builder 2009
COM
( 1105 )
( 1120 )
[...] ( 788 )
[ VCL ] ( 790 )
dbExpress
Tiburon DataSnap Enhancements - Steve Shaughnessy
Preview: Some New and Enhanced Components in Tiburon - Anders Ohlsson
Unicode TEncoding
1.4.3 RAD Studio
RAD Studio Delphi Win32 IDERAD Studio IDE IDE RAD Studio
RAD Studio IDE UML
RAD Studio VCL Windows Windows Vista Windows
RAD Studio
IDE RAD Studio MSBuild MSBuild MSBuild Window
1.4 RAD Studio RAD Studio
59
1
http://blogs.codegear.com/steveshaughnessy/2008/07/20/38912http://dn.codegear.com/article/38349
s [] RAD Studio RAD Studio MSBuild BDS
... IDE
Win32 RAD Studio Windows InstallAware
( 26 )
( 68 )
( 3 )
( 19 )
( 30 )
1.4.4 IDE
RAD Studio IDEIDE
IDE
RAD Studio
Windows Vista
IDE RAD Studio 1.4
60
1
Windows Vista
IDE Windows Vista Windows XP IDE
RAD Studio
IDE MS Active AccessibilityMSAA[] Windows
HTML
RAD StudioWeb Web Windows IDE
...
Windows
Windows Windows Windows .NET 2 1 1 .NET Framework Windows .NET Framework GUI Windows Windows Windows
Windows ... Delphi for .NET Windows
VCL Forms
VCL Forms VCL .NET Framework VCL.NET
VCL Forms VCL Delphi .NET VCL
CodeGear Visual Component Library for .NET VCL
VCL Forms ... Delphi for .NET VCL
ASP.NET Web
ASP.NET Web Web .NET ASP.NET Web HTML
1.4 RAD Studio IDE
61
1
HTML
ASP.NET Web ... Delphi for .NET Windows
ASP.NET Web HTML IDE
VCL
HTML
HTML ASP.NET Web HTML HTML HTML HTML SCRIPT
HTML ... Web HTML
""
UI UI
[] [] [] []
VCL VCL.NETC++
IDE RAD Studio 1.4
62
1
RAD Studio
1 1 1
2
True False
+
Borland Data Provider Web
RAD Studio
HTML
1.4 RAD Studio IDE
63
1
...
RAD Studio
DLL COM ActiveX COM ActiveX ... ... .NET COM/ActiveX ...
GAC
GAC
Web
Web Web Web Web WSDL WSDL Web RADStudio Web Web
IDE RAD Studio 1.4
64
1
HTML HTML
...
UTF8
Windows
( 73 )
( 72 )
( 181 )
( 195 )
( 68 )
( 168 )
ASP.NET
IDE ( 191 )
1.4 RAD Studio IDE
65
1
( 1091 )
( 177 )
1.4.5 IDE Windows Vista
IDE Vista
Vista [][]
Vista
Aero
Vista
Windows Vista IDE 3 Windows Vista Windows Vista RAD Studio VCL TTaskDialogTFileOpenDialogTFileSaveDialog Vista
UseLatestCommonDialogs Vista Vista Vista Vista Vista IDE
SeeDetails HideDetails
ElevationRequired
Vista
Microsoft
Vista OnShowOnIncludeItemOnClose
IDE Windows Vista RAD Studio 1.4
66
1
Windows Vista
Windows Vista TCustomForm Vista FileDialog SaveDialog
OnShowIncludeItemOnClose Microsoft
Vista
IDE
Aero
Vista Aero
SheetOfGlass DoubleBuffered
RAD Studio
MSBuild ( 5 )
IDE ( 191 )
1.4.6
RAD Studio IDE
dbexplor.exe
XML
XML
xmlmapper.exe
Reflection
.NET reflection.exe
( 1088 )
XML ( 1060 )
1.4 RAD Studio
67
1
1.4.7
[IDE] UTF8
RAD Studio
RAD Studio
To-Do
Ctrl+Space
...
Delphi read/write uses WM_xxxCM_xxx CN_xxx
RAD Studio 1.4
68
1
ShowMessage ( | )
Ctrl+Shift+Space
:
XML
Ctrl+Shift+H
Delphi - CTRL + SPACE + .
C++ - CTRL + SPACE + ->
Ctrl+Shift+C
Enter Delphi begin Enter begin end; C++
VCL Ctrl
1. ... /
2.
3. ...
1.4 RAD Studio
69
1
4. Delphi ... Delphi
IDE 1
TComponent 1 TComponent
CTRL+Q^L - /
CTRL+ALT+ -
CTRL+ALT+ -
CTRL+ALT+HOME -
CTRL+ALT+END -
CTRL+ALT+ -
...
Delphi ... .NET framework
+-
IDE
RAD Studio 1.4
70
1
To-Do
To-Do To-Do
IDE
1 0 9 10
Ctrl+/ // 1 // Ctrl+/ Visual Studio Visual Basic Ctrl+K+C
RAD Studio
( 168 )
( 174 )
( 173 )
( 176 )
( 165 )
( 178 )
( 164 )
ToDo ( 199 )
( 170 )
( 173 )
( 166 )
1.4 RAD Studio
71
1
1.4.8
HTML HTML
IDE
DLL Web Web HTML
VCL )
HTML
HTML ASP.NET Web HTML HTML " " " " ... HTML/ASP.NET [ ] [ ] [ ] HTML HTML HTML SCRIPT
HTML ... Web HTML
"" ""
UI UI
RAD Studio 1.4
72
1
[] [ ] [] []
VCL VCL.NETC++
( 73 )
IDE ( 60 )
( 181 )
( 195 )
VCL ( 198 )
ASP.NET
1.4.9
RAD Studio .dproj .exe.dll.bpl
... ... ...
RAD Studio Windows ASP.NET Web ADO.NET Web RAD Studio COM CodeGear Delphi Web CodeGear C#Builder Web
Windows
VCL Windows Windows .NET ADO.NET Windows
ASP.NET Web
ASP.NET Web Web Web Web
1.4 RAD Studio
73
1
Web HTML Web RAD Studio HTML
CodeGear .NET MainMenu ContextMenu
ASP.NET Web
Web HTML XML Web Web Web
RAD Studio SOAP Web .asmx .dll IDE Web
Web Web WSDL UDDI
VCL.NET
VCL Forms VCL.NET .NET Windows
RAD Studio .NET VCL .NET VCL Win32 .NET
Web VCL RAD Studio SQL
dbExpress InterbaseOracleMS SQLInformixDB2Sybase MySQL dbExpress
ADO.NET MS SQLOracleODBC OLE DB Borland Data Provider for .NETBDP.NETMS SQLOracleDB2InterBase SQL BDP.NET
.NET
OLE DB COM
VCL Forms VCL.NET BDE.NETdbExpress.NETMidas Client for .NET
RAD Studio 1.4
74
1
CodeGear MDA MDA CodeGear Enterprise Core ObjectsECOECO IDE
ECO
XML
OCLObject Constraint Language
OCL
RAD Studio IDE ECO IDE IDE
XML 1.1
: RAD Studio CodeGear Delphi Web CodeGear C#Builder Web
PE.html, .jpeg, .gif DLL 1 1 GAC
RAD Studio Visual Basic ...
1.4 RAD Studio
75
1
COM
.NET Framework CLRCOM .NET COM COM ActiveX .NET .NET RAD Studio IDE COM ActiveX DLL DLL
( 189 )
ASP.NET
ASP.NET Web Hello World
COM
1.4.10
RAD Studio
2
1. RAD Studio .bdstemplatelib XML RAD Studio
2. .bdstemplatelib IDE ...
IDE
RAD Studio
:
.bdstemplatelib 1 .bdstemplatelib
( 166 )
RAD Studio 1.4
76
1
1.4.11
C++
Delphi.pas
C/C++.c/.cpp
.asm
.rc
Delphi C/C++
( 200 )
1.4.12
RAD Studio
Microsoft .NET Framework SDK
CodeGear Web
RAD Studio
RAD Studio
RAD Studio
1.4 RAD Studio
77
1
:
:
CodeGear
ADO.NET
.NET SDKWeb
API Delphi
API
F1
F1 IDE
IDE
: VCL.NET F1
RAD Studio .NET F1 Microsoft .NET
Microsoft SDK
RAD Studio Microsoft .NET Framework SDK Microsoft Platform SDK RAD Studio SDK SDK
RAD Studio 1.4
78
1
CodeGear Web
CodeGear http://support.codegear.com/jp Web FAQCodeGear Developer NetworkCDN
RAD Studio
RAD Studio RAD Studio
RAD Studio
RAD Studio
KEYCAPS Ctrl Enter
Web
Microsoft SDK
CodeGear
1.4.13
""
->...->
Ctrl ... Delphi
IDE
1.4 RAD Studio
79
1
http://support.codegear.com/jp
Ctrl+Space
self.Delphi this->C++
.
Delphi TRect test; test. C++ var test: TRect; : : begin test.
Ctrl+Space
Ctrl+Space ... 2
Delphi C++
Ctrl+Space
C++ Ctrl+Space RTL
Ctrl
Ctrl
: uses WM_xxxCM_xxx CN_xxx
: C++ ->...->C++ Use pre-compiled headers
( 68 )
1.4.14
2
RAD Studio 1.4
80
1
/
Delphi
[X]
[ ] ( 1115 )
[] ( 1113 )
[] ( 1113 )
[] ( 1114 )
( 181 )
1.4 RAD Studio
81
1
1.5 RAD Studio
( 82 ) RAD Studio DUnit NUnit 2 DUnit Delphi C++ NUnit Delphi for .NET C# JUnit
DUnit ( 84 ) DUnit JUnit DUnit Delphi Win32 DUnit RAD Studio Delphi Win32Delphi .NET C++Builder
1.5.1
RAD Studio DUnit NUnit 2 DUnit Delphi C++ NUnit Delphi for .NET C#
JUnit
RAD Studio 1.5
82
1
RAD Studio
DUnit
Delphi C++Builder DUnit RAD Studio DUnit \source\DUnit C++ Builder C++ C++
GUITestRunner.hpp
XMLTestRunner.hpp
TextTestRunner.hpp
TestFramework.hpp
DUnitMainForm.hpp
DUnitAbout.hppdir
dunitrtl.lib
: DUnit CodeGear C++ Builder
DUnit 1 1
DUnit Mozilla Public License 1.0MPL
NUnit
NUnit Delphi for .NET C#
NUnit NUnit C:\Program Files\NUnit V2.x x
NUnit .NET Delphi for .NET C# NUnit DUnit DUnit .dcu NUnit
NUnit 1 1
1 IDE 1 RAD Studio
1 1
1.5 RAD Studio
83
1
RAD Studio
SetUp TearDown
DUnit ( 84 )
NUnit
( 215 )
Mozilla 1.0
zlib/libpng
1.5.2 DUnit
DUnit JUnit DUnit Delphi Win32 DUnit RADStudio Delphi Win32Delphi .NET C++Builder
Delphi DUnit
DUnit TTestCase
Delphi Win32 2
unit CalcUnit; interface type { TCalc } TCalc = class public function Add(x, y: Integer): Integer; function Sub(x, y: Integer): Integer; end;
DUnit RAD Studio 1.5
84
1
http://www.mozilla.org/MPL/MPL-1.0.htmlhttp://www.opensource.org/licenses/zlib-license.php
implementation { TCalc } function TCalc.Add(x, y: Integer): Integer;begin Result := x + y;end; function TCalc.Sub(X, Y: Integer): Integer;begin Result := x + y;end; end.
Add Sub 2
unit TestCalcUnit; interface uses TestFramework, CalcUnit;type // TCalc TestTCalc = class(TTestCase) strict private aTCalc: TCalc; public procedure SetUp; override; procedure TearDown; override; published procedure TestAdd; procedure TestSub; end; implementation procedure TestTCalc.SetUp;begin aTCalc := TCalc.Create;end; procedure TestTCalc.TearDown;begin aTCalc := nil;end; procedure TestTCalc.TestAdd;var _result: System.Integer; y: System.Integer; x: System.Integer;begin _result := aTCalc.Add(x, y); // TODO: end;
1.5 RAD Studio DUnit
85
1
procedure TestTCalc.TestSub;var _result: System.Integer; y: System.Integer; x: System.Integer;begin _result := aTCalc.Sub(x, y); // TODO: end; initialization // RegisterTest(TestTCalc.Suite);end.
C++ DUnit
DUnit TTestCase
C++ Win32 2
#ifndef Unit7H#define Unit7H//------------------------------------------------- class TCalc{public: int Add(int x, int y); int Sub(int x, int y);}; #endif
TestUnit7.cpp TCalc Testcase Add Sub DUnit
#include #pragma hdrstop #include class TTestTCalc : public TTestCase{public: __fastcall virtual TTestTCalc(AnsiString name) : TTestCase(name) {} virtual void __fastcall SetUp(); virtual void __fastcall TearDown(); __published: void __fastcall TestAdd(); void __fastcall TestSub();}; void __fastcall TTestTCalc::SetUp(){}
DUnit RAD Studio 1.5
86
1
void __fastcall TTestTCalc::TearDown(){} void __fastcall TTestTCalc::TestAdd(){ // int Add(int x, int y)} void __fastcall TTestTCalc::TestSub(){ // int Sub(int x, int y)} static void registerTests(){ _di_ITestSuite iSuite; TTestSuite* testSuite = new TTestSuite("Testing Unit7.h"); if (testSuite->GetInterface(iSuite)) { testSuite->AddTests(__classid(TTestTCalc)); Testframework::RegisterTest(iSuite); } else { delete testSuite; }}#pragma startup registerTests 33 /* [ - ]GenerateHeaderComment=trueDefaultExtension=.cppFileName=C:\Users\bbabet\Documents\RAD Studio\Projects\DUnitSample\Test\TestUnit7.cppTestFramework=DUnit / C++ Win32OutputPersonality=CPlusPlusBuilder.PersonalityTestProject=C:\Users\bbabet\Documents\RAD Studio\Projects\DUnitSample\Test\Project3Tests.cbprojUnitUnderTest=C:\Users\bbabet\Documents\RAD Studio\Projects\DUnitSample\Unit7.hNameOfUnitUnderTest=Unit7.hTestCaseBaseClass=TTestCaseTestCasePrefix=TestUnitName=TestUnit7Namespace=TestUnit7TestClasses= Name=TCalc Methods= Name=Add Signature=int Add(int x, int y) Name=Sub Signature=int Sub(int x, int y)TestClass=Method=*/
DUnit
DUnit
1.5 RAD Studio DUnit
87
1
Check
CheckEquals 2
CheckNotEquals
CheckNotNull Null
CheckNull Null
CheckSame 2
EqualsErrorMessage
Fail
FailEquals
FailNotEquals
FailNotSame 2
NotEqualsErrorMessage
2
NotSameErrorMessage
1
DUnit \source\dunit\doc DUnit
DUnit
DUnit DUnit NUnit NUnit DUnit 2
GUI - GUI
Console -
DUnit GUI DUnit GUI
DUnit Console
( 82 )
NUnit
( 215 )
DUnit RAD Studio 1.5
88
1
1.6 UML
: UML
( 91 ) 2 UML
( 97 ) RAD Studio
UML ( 97 ) UML 2
( 97 ) 1 1
( 98 ) UML 2.0 UML
UML ( 98 ) OMGUMLUML UML UML UML (): SuperstructureUML UML (): InfrastructureUML 2 UML
( 99 )
1.6 UML RAD Studio
89
1
( 99 ) UML UML
( 99 ) .dll.exe
( 100 )
( 100 )
( 101 )
( 102 )
OCL ( 102 )
( 103 )
( 105 ) UML 2000
RAD Studio 1.6 UML
90
1
QA ( 106 ) QA 2
( 107 ) HTML
( 108 )
( 109 ) RAD Studio Enterprise Architect RAD Studio Architect
1.6.1
2 UML
( 92 ) UML UML 2.0 OCLIBM Rational RoseMDLXMI UML RAD Studio UML
/
:
Web
UML 2.0 ( 92 ) UML 2.0 RAD Studio Architect
1.6 UML RAD Studio
91
1
( 95 ) RAD Studio Enterprise Architect RAD Studio Architect
1.6.1.1
UML UML 2.0 OCLIBM Rational RoseMDLXMI
UML RAD Studio UML
/
:
Web
( 97 )
( 77 )
( 1208 )
( 1168 )
1.6.1.2 UML 2.0
UML 2.0
RAD Studio Architect
UML 2.0 Behavior ( 93 )
Activity
StateMachine
UseCase
Interaction
RAD Studio 1.6 UML
92
1
UML 2.0 Structure ( 94 ) 2
Class
Component
CompositeStructure
Deployment
1.6.1.2.1 UML 2.0 Behavior
Activity
StateMachine
UseCase
Interaction
Activity
Activity 3
Data Activity
Final Nodes
Process Order
Data Activity
Data Activity
Final Nodes
Final Nodes Deliver
Process Order
Process Order
StateMachine
StateMachine 2
Course Attempt
Submachine State
Course Attempt
Course Attempt
1.6 UML RAD Studio
93
1
Submachine State
Submachine State ReadAmountSM ReadAmount:ReadAmountSM ReadAmountSM
UseCase
UseCase Main Use Cases
Interaction
Interaction 2 ShowAlbumsDialog ShowAlbumsDialog cd_ShowAlbumsDialog
UML 2.0 ( 92 )
UML 2.0 Structure ( 94 )
( 97 )
UML 2.0 ( 225 )
1.6.1.2.2 UML 2.0 Structure 2
Class
Component
CompositeStructure
Deployment
Class
Class Class DiagramClasses and AssociationsClasses and Features 3
Class Diagram
FCCFirst Class CitizenAbstract Factory GoF
Classes and Associations
n n
2
RAD Studio 1.6 UML
94
1
Classes and Features
Component
Component Store Compoments
CompositeStructure
CompositeStructure
Deployment
Deployment Application Server
UML 2.0 ( 92 )
UML 2.0 Behavior ( 93 )
( 97 )
UML 2.0 ( 225 )
1.6.1.3
RAD Studio Enterprise Architect RAD Studio Architect
UML
RAD Studio UML UML UML
: UML RAD Studio 2 UML RAD Studio UML ECO framework
1.6 UML RAD Studio
95
1
RAD Studio UML UML IDE UML
UML
2 IDE
UML UML .NET Delphi .NET UML
UML IDE UML
UML IDE 1
UML
UML 4
C#
UML UML 4
( 785 )
UML 2.0 ( 1219 )
[ ] ( 318 )
RAD Studio 1.6 UML
96
1
1.6.2
RAD Studio
( 92 )
( 97 )
( 225 )
1.6.3 UML
UML 2
UML 2.0 ( 92 )
( 302 )
( 1182 )
1.6.4
1
1
( 287 )
1.6 UML RAD Studio
97
1
( 1191 )
1.6.5
UML 2.0
UML
( 100 )
( 228 )
( 238 )
1.6.6 UML
OMGUML
UML
UML UML UML (): SuperstructureUML UML (): InfrastructureUML 2 UML
UML 1.5 UML 2.0
UML 1.5 2.0
UML 1.5
UML
UML
UML 4
Role
MomentIntervalMi-detail
PartyPlaceThing
UML RAD Studio 1.6 UML
98
1
Description
Java: UMLJavaCoadLefebvreDe Luca
http://www.uml.org/
( 1153 )
1.6.7
( 241 )
( 1180 )
1.6.8
UML UML
( 226 )
1.6.9
.dll.exe
1.6 UML RAD Studio
99
1
http://www.uml.org
( 239 )
1.6.10
( 234 )
( 1156 )
1.6.11
1
URL LAN URL
RAD Studio 1.6 UML
100
1
URL
( 232 )
( 285 )
1.6.12
MDA
OMG MDA
MDA
MDA UMLXMI
Doc
doc authorsinceversionstereotypeassociates
doc ///C# XML
1 ' value
( 305 )
LiveSource ( 1192 )
( 1179 )
1.6 UML RAD Studio
101
1
1.6.13
Class1 ClassItem
codegen_map.xml XML 2 1 name 1 aliasUML 1.5 ClassAttributeOperation PackageUML 2.0 Class Package
XML
codegen_map.xml
: codegen_map.xml
LiveSource ( 101 )
( 306 )
1.6.14 OCL
OCL
OCLObject Constraint LanguageUML OCL UML
OCL 2.0 OMG
OCL
: Kent UniversityObject Constraint Language Libraryhttp://www.cs.kent.ac.uk/projects/ocl/
OCL RAD Studio 1.6 UML
102
1
http://www.cs.kent.ac.uk/projects/ocl
OCL
OCL
UML 2.0 OCL
OCL OCL
OCL OCL
OCL
OCL OCL
OCL
OCL
UML
UML 1.52.0
UML 2.0 OCL
UML 2.0 OCL
UML 2.0 OCL
( 97 )
OCL ( 288 )
OCL ( 1172 )
1.6.15
1.6 UML RAD Studio
103
1
Patterns
Patterns\templates
///
CLASSLINK MEMBER
%Name%.
.properties
XML 1 1
Patterns XML
FCC
FCCFirst Class Citizen FCC
FCCFirst Class CitizenGoF
RAD Studio 1.6 UML
104
1
FCC FCC
( 290 )
1.6.16
UML
2000
( 219 )
( 1181 )
1.6 UML RAD Studio QA
105
1
1.6.17 QA
QA
2
current.adt
:
:
2
QA RAD Studio 1.6 UML
106
1
1 0
Visual Studio
QA QA
QA
( 311 )
( 314 )
1.6.18
HTML
HTML 1 Web HTML index.html
HTML
HTML 3
1.6 UML RAD Studio
107
1
HTML
( 287 )
( 286 )
1.6.19
BMP
Windows EMF
GIF
PEG JPG
W3C PNG
TIFF
Windows WMF
IBM Rational RoseMDL
IBM Rational Rose 2003 .mdl.ptl.cat.sub
IBM Rational Rose UML 1.5
XMI
XMI
XMIXML Metadata InterchangeXMI XML 1 .xml
8 UML UML 1.3 Unisys XMI
UML 1.5
RAD Studio 1.6 UML
108
1
QA
( 241 )
IBM Rational RoseMDL ( 303 )
XMI ( 304 )
XMI ( 303 )
( 313 )
( 1182 )
1.6.20
RAD Studio Enterprise Architect RAD Studio Architect
UML
RAD Studio UML UML
: UML RAD Studio 2 UML RAD Studio UML
RAD Studio UML UML IDE UML
UML .NET
2 IDE
1.6 UML RAD Studio
109
1
UML UML .NET .NET UML
UML IDE UML
UML IDE 1
UML
UML 4
Delphi
UML UML 4
Delphi for .NET UML
( 317 )
[ ] ( 318 )
[] ( 319 )
RAD Studio 1.6 UML
110
1
1.7 RAD Studio
( 114 ) 1 RAD Studio RAD Studio
DelphiC++
Delphi
Delphi
DelphiC#
DelphiC++
Delphi
Delphi
Delphi
Delphi
1.7 RAD Studio
111
1
DelphiC++ ( 115 )
Delphi ( 116 ) [...] 1 [...]
Delphi inherited
with
[...]
RAD Studio 1.7
112
1
Delphi ( 116 ) resourcestring resourcestring implementation uses
const A = 'abcdefg';
MyProc(A, B:Integer; C: string='test');
resourcestring A = 'test';
Delphi ( 117 )
DelphiC++ ( 119 ) 3 Delphi Delphi
Delphi ( 119 ) RAD Studio ... ... ...
:
1.7 RAD Studio
113
1
DelphiC++ ( 120 ) 1 1
Delphi ( 120 ) IDE IDE [...][...] [...] Ctrl-z
1.7.1
1
RAD Studio
RAD Studio
DelphiC++
Delphi
Delphi
DelphiC#
DelphiC++
Delphi
Delphi
Delphi
RAD Studio 1.7
114
1
Delphi
DelphiC#C++ ( 115 )
( 170 )
( 130 )
DelphiC#C++ ( 120 )
Delphi ( 116 )
DelphiC#C++ ( 119 )
Delphi ( 117 )
Delphi ( 116 )
( 169 )
DelphiC# ( 120 )
DelphiC# ( 169 )
1.7.2 DelphiC++
procedure Foo; overload; procedure Foo(A:Integer); overload; Foo(); Foo; Foo(5);
Foo 134
1.7 RAD Studio DelphiC++
115
1
TFoo = class procedure Foo; virtual; end; TFoo2 = class(TFoo) procedure Foo; override; end; TFoo3 = class(TFoo) procedure Foo; override; end; TFoo4 = class(TFoo3) procedure Foo; override; end;
Foo Foo
( 114 )
Delphi ( 116 )
( 132 )
1.7.3 Delphi
[...] 1 [...]
Delphi inherited
with
[...]
( 114 )
( 170 )
( 132 )
1.7.4 Delphi
resourcestring resourcestring implementation uses
Delphi RAD Studio 1.7
116
1
const A = 'abcdefg';
MyProc(A, B:Integer; C: string='test');
resourcestring A = 'test';
( 114 )
( 170 )
1.7.5 Delphi
Declare Variable
Delphi
ifbegin
Unicode Unicode
Delphi string
: .NET SDK
:
2
myVar := x + 1;
1.7 RAD Studio Del
117
1
x Integer myVar Integer
If foo Then... foo Boolean If (foo = 5) Then... Boolean 5foo 2 foo
[...]
ifbegin
Unicode Unicode
Delphi string
: .NET
private strict private
TFoo = class private procedure Foo1; end; ... implementation procedure TFoo.Foo1; begin FTestString := 'test'; // TestString end;
[...]
TFoo = class private FTestString: string; procedure Foo1; end;
[...]
procedure TFoo.Foo1; var // TestString: string; // begin TestString := 'test'; // TestString := 'whatever'; end;
( 114 )
Del RAD Studio 1.7
118
1
DelphiC++ ( 115 )
( 170 )
1.7.6 DelphiC++
3
Delphi Delphi
[]
1 TFoo = class 2 loc_a: Integer; // loc_a 3 procedure Foo1; // 2 4 end; // TFoo.Foo1 (15 ) 5 var6 loc_a: string; // loc_a // 6 // Foo11 7 implementation 8 {$R *.nfm} 9 procedure Foo;10 begin11 loc_a := 'test';12 end; 13 procedure TFoo.Foo1;14 begin15 loc_a:=1;16 end;
( 114 )
( 170 )
1.7.7 Delphi
RAD Studio ...
1.7 RAD Studio Delphi
119
1
...
...
:
( 114 )
1.7.8 DelphiC++
1 1
( 114 )
( 178 )
( 170 )
1.7.9 Delphi
IDE IDE
[...][...] [...] Ctrl-z
Delphi RAD Studio 1.7
120
1
( 114 )
( 170 )
1.7 RAD Studio Delphi
121
1
2
RAD Studio
( 124 )
( 143 )
( 163 )
( 179 ) IDE
( 203 ) RAD Studio
( 210 )
( 215 ) DUnit NUnit
( 218 )
2 RAD Studio
123
2
2.1
( 125 ) [] [ ]
( 125 ) RAD Studio
Delphi C++ ( 126 )
C++Builder Delphi Delphi DesignIDE100.bpl DesignIntfDesignEditorsToolsAPI IDE C++Builder
( 127 )
( 127 )
MSBuild ( 128 ) IDE Microsoft MSBuild IDE MSBuild MSBuild MSBuild MSBuild [/t:][/p:configuration=]
( 129 )
( 130 ) RAD Studio 1 2 DelphiC#C++
( 130 ) UI
( 132 )
( 132 )
Unicode ( 133 ) UnicodeString Char WideChar UnicodeString Unicode RAD Studio Unicode ( 11 )
Unicode ( 141 ) Unicode Unicode Unicode Lucida Console 65001
RAD Studio 2.1
124
2
C++ ( 142 )
.lib .obj C++ ... [] C++
2.1.1
[] [ ]
[] 1
1. ... []
2. Debug Release []
3. 1 []
4.
[ ]
1. [ ] [Debug] [Release] []
2.
MSBuild ( 5 )
( 6 )
( 3 )
C++ ( 127 )
[] ( 872 )
2.1.2
RAD Studio
1.
2. Delphi Delphi for .NET C++Builder
3. ContainsRequires 2
: .dcpil
2.1 RAD Studio
125
2
.dllRequired.pas.cpp.hContains
4.
5.
6. 1
7. 1
8. OK
9.
1. VCL
2.
3.
4.
5.
6.
7. OK
8.
1. .NET
2. .NET VCL
3.
4.
5.
6. OK
( 3 )
2.1.3 Delphi C++
C++Builder Delphi Delphi DesignIDE100.bpl DesignIntfDesignEditorsToolsAPI IDE C++Builder
Delphi
1. Delphi DesignIDE C++Builder ... Delphi
2. -LUDesignIDE
Delphi C++ RAD Studio 2.1
126
2
3. C++ .obj C++Builder ...
4. designide.bpiOK
C++Builder
2.1.4
1.
2.
3. 1 Enter DOS copy $() c:\Built\$()
4. Events List
5.
6. Events ListOK
7. OK
8.
( 874 )
( 879 )
2.1.5
1. [ ] [] [Base]
2. [Debug][Release] [...] [] [Base]
3. [OK]
2.1 RAD Studio
127
2
4. [ ]
:
[...]
: [ ] []
1. [ ] []
2. [...]
3.
4.
5. [OK]
:
...
MSBuild ( 5 )
( 6 )
[] ( 872 )
( 125 )
( 132 )
2.1.6 MSBuild
IDE Microsoft MSBuild IDE MSBuild MSBuild
MSBuild
MSBuild [/t:][/p:configuration=]
1. CodeGear RAD Studio RAD Studio MSBuild.exe RAD Studio
2. C:\Documents and Settings\\My Documents\RAD Studio\Projects
3. msbuild
4. TelePoll.dproj Delphi UserInfo.cbprojC++
MSBuild RAD Studio 2.1
128
2
5. /t: 1 cleanmakebuild 3
clean clean []
make make Compile
build build 3 [][][] build
6. /p:configuration = MSBuild 1 /p:configuration =My config
7.
MSBuild RAD Studio 1 MSBuild /help
MSBuild http://msdn.microsoft.com Microsoft
MSBuild ( 5 )
( 3 )
IDE ( 1145 )
( 872 )
( 127 )
RAD Studio ( 1147 )
2.1.7
.targets
1. ...
2. C++Builder C++Builder
3. MSBuild
4. .targets XML IDE
.targets
1. ...
2. MSBuild (*.targets)
3. .targets
4.
2.1 RAD Studio
129
2
.targets
1.
2. ...
3. MSBuild (*.targets)
4. .targets
5.
.targets
1. .targets
2.
.targets
1. .targets
2.
.targets
1. .targets
2.
( 9 )
2.1.8
RAD Studio 1 2 DelphiC#C++
IDE
1.
2. RAD Studio
3.
4.
5.
6.
2.1.9
RAD Studio 2.1
130
2
UI
1.
2.
3.
4.
5. 'symbol type' symbol type
6.
7.
8. OK
:
1.
2.
3.
:
1.
2.
3.
4.
5. symbol type' symbol type
6.
7. OK
:
( 114 )
2.1 RAD Studio
131
2
2.1.10
1.
2.
3. 'symbol type' 'symbol name' symbol typesymbol name
4.
5.
:
( 114 )
2.1.11
[ ]
1. ...
2.
3. 1
4. ...
5.
6. OK
[]
1.
2. ...
3.
4. OK
[ ]
1. ...
2.
RAD Studio 2.1
132
2
3. ...
4.
5.
6. OK
[]
1.
2. ...
3.
4.
5. OK
[] ( 871 )
MSBuild ( 5 )
C++ ( 6 )
( 872 )
C++ ( 196 )
C++ ( 127 )
( 125 )
2.1.12 Unicode
UnicodeString Char WideChar UnicodeString
Unicode RAD Studio Unicode ( 11 )
Unicode
SizeOf(Char) 1
Length
PChars
2 Unicode Unicode SizeOf(Char) 1 Length 2
2.1 RAD Studio Unicode
133
2
UnicodeString AnsiString Delphi C++Builder UnicodeString AnsiString UnicodeString AnsiString
Delphi
{$IFDEF UNICODE}
C++
#ifdef _DELPHI_STRING_UNICODE
UnicodeString WideString AnsiString AnsiChar Unicode 1057 1058
/
1057 ( 562 ) [ ('%s' '%s')] (IMPLICIT_STRING_CAST)
1058 ( 562 ) [ ('%s' '%s')] (IMPLICIT_STRING_CAST_LOSS)
1059 ( 561 ) [ ('%s' '%s')] (EXPLICIT_STRING_CAST)
1060 ( 562 ) [ ('%s' '%s')] (EXPLICIT_STRING_CAST_LOSS)
Delphi ... Delphi
C++ ... C++
SizeOf
SizeOf
var Count: Integer; Buffer: array[0..MAX_PATH - 1] of Char;begin // - UnicodeString Count := SizeOf(Buffer); GetWindowText(Handle, Buffer, Count); // Unicode Count := Length(Buffer); //
Pascal Length Length Pascal Length
null Length null StrLen
FillChar
Char FillChar
var Count: Integer; Buffer: array[0..255] of Char;begin // - UnicodeString (char = 2 ) Count := Length(Buffer); FillChar(Buffer, Count, 0); // Unicode Count := SizeOf(Buffer); //
end;
Length Move Count Length SizeOf Length Char
TStream Read/ReadBuffer
TStream.Read/ReadBuffer
var S: string; L: Integer; Stream: TStream; Temp: AnsiString;begin // - string = UnicodeString Stream.Read(L, SizeOf(Integer)); SetLength(S, L); Stream.Read(Pointer(S)^, L); // Unicode Stream.Read(L, SizeOf(Integer)); SetLength(S, L); Stream.Read(Pointer(S)^, L * SizeOf(Char)); //
procedure CallLibraryProc(const LibraryName, ProcName: string);var Handle: THandle; RegisterProc: function: HResult stdcall;begin Handle := LoadOleControlLibrary(LibraryName, True); @RegisterProc := GetProcAddress(Handle, PAnsiChar(AnsiString(ProcName)));end;
RegQueryValueEx
RegQueryValueEx Len Unicode Len 2
RegQueryValueEx
Len := MAX_PATH;if RegQueryValueEx(reg, PChar(Name), nil, nil, PByte(@Data[0]), @Len) = ERROR_SUCCESSthen SetString(Result, Data, Len - 1) // Len #0 else RaiseLastOSError;
Len := MAX_PATH * SizeOf(Char);if RegQueryValueEx(reg, PChar(Name), nil, nil, PByte(@Data[0]), @Len) = ERROR_SUCCESthen SetString(Result, Data, Len div SizeOf(Char) - 1) // Len #0 else RaiseLastOSError;
CreateProcessW
Windows API CreateProcessCreateProcessW Unicode ANSI lpCommandLine MSDN
Unicode CreateProcessW
CreateProcess
// CreateProcess(nil, 'foo.exe', nil, nil, False, 0, nil, nil, StartupInfo, ProcessInfo);// const cMyExe = 'foo.exe' CreateProcess(nil, cMyExe, nil, nil, False, 0, nil, nil, StartupInfo, ProcessInfo);// refcount -1 const cMyExe = 'foo.exe'var sMyExe: string; sMyExe := cMyExe;
2.1 RAD Studio Unicode
137
2
CreateProcess(nil, PChar(sMyExe), nil, nil, False, 0, nil, nil, StartupInfo, ProcessInfo);
LeadBytes
LeadBytes
if Str[I] in LeadBytes then
IsLeadChar
if IsLeadChar(Str[I]) then
TMemoryStream
TMemoryStream BOMBOM
var Bom: TBytes;begin ... Bom := TEncoding.UTF8.GetPreamble; Write(Bom[0], Length(Bom));
UTF-8 Unicode
var Temp: Utf8String;begin ... Temp := Utf8Encode(Str); // Str Write(Pointer(Temp)^, Length(Temp)); // Write(Pointer(Str)^, Length(Str));
MultiByteToWideChar
Windows API MultiByteToWideChar MultiByteToWideChar
procedure TWideCharStrList.AddString(const S: string);var Size, D: Integer;begin Size := SizeOf(S); D := (Size + 1) * SizeOf(WideChar); FList[FUsed] := AllocMem(D); MultiByteToWideChar(0, 0, PChar(S), Size, FList[FUsed], D); Inc(FUsed);end;
Unicode ANSI Unicode
procedure TWideCharStrList.AddString(const S: string);{$IFNDEF UNICODE}var L, D: Integer;{$ENDIF}begin
Unicode RAD Studio 2.1
138
2
{$IFDEF UNICODE} FList[FUsed] := StrNew(PWideChar(S));{$ELSE} L := Length(S); D := (L + 1) * SizeOf(WideChar); FList[FUsed] := AllocMem(D); MultiByteToWideChar(0, 0, PAnsiChar(S), L, FList[FUsed], D);{$ENDIF} Inc(FUsed);end;
SysUtils.AppendStr
AppendStr AnsiString UnicodeString
AppendStr(String1, String2);
String1 := String1 + String2;
TStringBuilder
Delphi Thread Object
typeTThreadNameInfo = record FType: LongWord; // 0x1000 FName: PChar; // ( ) FThreadID: LongWord; // ID (-1 ) FFlags: LongWord; // end;
FName Unicode ANSI
typeTThreadNameInfo = record FType: LongWord; // 0x1000 FName: PAnsiChar; // ( ) FThreadID: LongWord; // ID (-1 ) FFlags: LongWord; // end;
Delphi
Unicode UTF-8
ThreadNameInfo.FName := UTF8String('UnicodeThread_');
: C++Builder C++Builder
2.1 RAD Studio Unicode
139
2
PChar
2009 PChar $POINTERMATH PByte
PChar
function TCustomVirtualStringTree.InternalData(Node: PVirtualNode): Pointer;begin if (Node = FRoot) or (Node = nil) then Result := nil else Result := PChar(Node) + FInternalDataOffset;end;
PChar PByte
function TCustomVirtualStringTree.InternalData(Node: PVirtualNode): Pointer;begin if (Node = FRoot) or (Node = nil) then Result := nil else Result := PByte(Node) + FInternalDataOffset;end;
Node Node PChar SizeOf(Char) == Sizeof(Byte) true PChar PByte Result
TVarRec UnicodeString vtUnicodeString UnicodeString UnicodeString vtUnicodeString UnicodeString
procedure RegisterPropertiesInCategory(const CategoryName: string; const Filters: array of const); overload;varI: Integer;begin if Assigned(RegisterPropertyInCategoryProc) then for I := Low(Filters) to High(Filters) do with Filters[I] do case vType of vtPointer: RegisterPropertyInCategoryProc(CategoryName, nil, PTypeInfo(vPointer), ); vtClass: RegisterPropertyInCategoryProc(CategoryName, vClass, nil, ); vtAnsiString: RegisterPropertyInCategoryProc(CategoryName, nil, nil, string(vAnsiString)); vtUnicodeString: RegisterPropertyInCategoryProc(CategoryName, nil, nil, string(vUnicodeString)); else raise Exception.CreateResFmt(@sInvalidFilter, [I, vType]); end;
Unicode RAD Studio 2.1
140
2
end;
Unicode
AllocMem(
AnsiChar
of AnsiChar
AnsiString
of Char
Copy(
GetMem(
Length(
PAnsiChar
Pointer(
Seek(
ShortString
string[
UnicodeString
RAD Studio Unicode ( 11 )
( 68 )
2.1.13 Unicode
Unicode Unicode Unicode Lucida Console 65001
Unicode
1. [CodeGear RAD StudioRAD Studio ] [] [...] cmd
2.
3. [Lucida Console]
4. 65001 C:\chcp 65001
2.1 RAD Studio C++
141
2
2.1.14 C++
.lib .obj C++ ... [] C++
1. .lib .obj
2. [] [] []
[ ] ( 1093 )
C++ RAD Studio 2.1
142
2
2.2
( 146 ) ActiveWatchGroup
CPU ( 147 ) CPU
( 147 )
( 147 ) RAD Studio
2.2 RAD Studio
143
2
( 148 ) F9
( 152 )
( 153 ) :
( 154 )
RAD Studio 2.2
144
2
( 154 ) IDE 2
( 155 ) RAD Studio RAD Studio
( 155 )
RAD Studio RAD Studio
TCP/IP
DLL PDB
1 Windows
: RAD Studio TCP/IP
( 156 ) RAD Studio RAD Studio
( 157 ) TCP/IP Windows 1 : Windows XP 2 CodeGear : RAD Studio TCP/IP
( 158 )
2.2 RAD Studio
145
2
( 159 ) RAD Studio
Delphi for Win32 .RSM
C++ .TDS PE
( 160 ) X1234 :
2.2.1
ActiveWatchGroup
1.
2.
3.
4.
5. OK
( 994 )
( 1085 )
CPU RAD Studio 2.2
146
2
2.2.2 CPU
CPU
CPU
1.
2. CPU 5 CPU
( 19 )
CPU ( 1076 )
2.2.3
1.
2.
3. IDE
4. +
( 19 )
( 146 )
( 148 )
( 153 )
2.2.4
RAD Studio
2.2 RAD Studio
147
2
1.
2. .NET Win32 CodeGear .NET DebuggerCodeGear Win32 Debugger Win32
3.
:
4.
5.
6.
( 987 )
2.2.5
F9
RAD Studio 2.2
148
2
1.
2.