rad studio (共通) -...

1304
RAD Studio (共通) Copyright(C) 2008 Embarcadero Technologies, Inc. All Rights Reserved.

Upload: lamminh

Post on 20-Jan-2019

322 views

Category:

Documents


6 download

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

print

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.