دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: برنامه نويسي ویرایش: نویسندگان: Xavier Pacheco, Steve Teixeira سری: ISBN (شابک) : 0672317818, 9780672317811 ناشر: SAMS سال نشر: 2000 تعداد صفحات: 1113 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 14 مگابایت
کلمات کلیدی مربوط به کتاب راهنمای توسعه دهنده دلفی 5: کتابخانه، ادبیات کامپیوتر، Borland Delphi / CodeGear Delphi
در صورت تبدیل فایل کتاب Delphi 5 developer's guide به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب راهنمای توسعه دهنده دلفی 5 نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
راهنمای برنامه نویس دلفی 5 مرجع کاملی است که به توسعه دهندگان نشان می دهد که بیشتر از همه درباره دلفی 5 باید بدانند. متن با گشت و گذار در اصول اولیه دلفی 5، از جمله بهبودهایی از نسخه 1 آغاز می شود. پس از مشاهده برنامه نویسی پاسکال شی گرا، از جمله ویژگی های زبان پیشرفته ، نویسندگان به نقاط قوت استفاده از چارچوب های کاربردی کتابخانه مؤلفه های بصری (VCL) مراجعه می کنند. آنها شامل چندین بخش ارزشمند برای توسعه دهندگان شرکتی هستند، از جمله یک سند \"استانداردهای کدگذاری\". بخشهای ترکیب VCL با کنترلهای ActiveX تور اصلی را کامل میکنند. موضوعات پیشرفته شامل برنامه نویسی گرافیکی، ساخت کتابخانه های پیوند پویا (DLL)، چاپ و چند رشته ای می باشد.
The Delphi 5 Developer's Guide is a complete reference showing developers what they need to know most about Delphi 5. The text begins with a tour of Delphi 5 basics, including improvements since version 1. After observing object-oriented Pascal programming, including advanced language features, the authors turn to the strengths of using the Visual Component Library (VCL) application frameworks. They include several invaluable sections for corporate developers, including a "coding standards" document. Sections on combining VCL with ActiveX controls round out the basic tour. Advanced topics include graphics programming, building dynamic link-libraries (DLLs), printing, and multithreading
Developer’s Guide......Page 1
Contents......Page 3
Tables......Page 25
Figures......Page 27
What’s in this manual?......Page 29
Manual conventions......Page 30
Ordering printed documentation......Page 31
Part I: Programming with Delphi......Page 33
Object Pascal and the VCL......Page 35
Examining a Delphi object......Page 36
Inheriting data and code from an object......Page 39
Scope and qualifiers......Page 40
Using object variables......Page 41
Creating, instantiating, and destroying objects......Page 42
Components and ownership......Page 43
Delphi’s standard components......Page 44
Properties common to visual components......Page 45
Text controls......Page 46
Specialized input controls......Page 47
Buttons and similar controls......Page 49
Handling lists......Page 51
Grouping components......Page 52
Visual feedback......Page 54
Grids......Page 55
Graphic display......Page 56
Using the Object Inspector......Page 57
Generating a new event handler......Page 58
Associating an event with an existing event handler......Page 59
Associating menu events with event handlers......Page 60
Working with lists......Page 61
Creating a new string list......Page 62
Manipulating strings in a list......Page 64
The Windows registry and INI files......Page 66
Creating and editing data modules......Page 67
Adding a remote data module to an application server project......Page 68
Sharing objects in a team environment......Page 69
Using project templates......Page 70
Adding custom components to the IDE......Page 71
Protecting blocks of code......Page 73
Exceptions and the flow of control......Page 74
Nesting exception responses......Page 75
What kind of resources need protection?......Page 76
Handling RTL exceptions......Page 77
What are the RTL exceptions?......Page 78
Exception handling statements......Page 79
Scope of exception handlers......Page 80
Handling classes of exceptions......Page 81
Reraising the exception......Page 82
Using TApplication.HandleException......Page 83
Defining your own exceptions......Page 84
Raising an exception......Page 85
Interfaces as a language feature......Page 86
Sharing interfaces between classes......Page 87
Implementing IUnknown......Page 88
Using the as operator......Page 89
Using implements for delegation......Page 90
Aggregation......Page 91
Using reference counting......Page 92
Not using reference counting......Page 93
Using interfaces in distributed applications......Page 94
String types......Page 95
Long strings......Page 96
OpenString......Page 97
Commonly used long string routines......Page 98
Declaring and initializing strings......Page 100
Returning a PChar local variable......Page 102
Compiler directives for strings......Page 103
Working with files......Page 104
Finding a file......Page 105
File date-time routines......Page 107
File types with file I/O......Page 108
Creating and opening files......Page 109
Reading and writing to files......Page 110
File position and size......Page 111
Defining new data types......Page 112
Windows applications......Page 113
Programming templates......Page 114
Service applications......Page 115
Service threads......Page 117
Service name properties......Page 119
When to use packages and DLLs......Page 120
Building distributed applications......Page 121
Creating Web server applications......Page 122
Distributing applications using CORBA......Page 123
Distributing database applications......Page 124
Using the main form......Page 125
Linking forms......Page 126
Managing layout......Page 127
Working with messages......Page 128
Creating forms dynamically......Page 129
Creating modeless forms such as windows......Page 130
Passing additional arguments to forms......Page 131
Retrieving data from modeless forms......Page 132
Retrieving data from modal forms......Page 133
Reusing components and groups of components......Page 135
Working with frames......Page 136
Using and modifying frames......Page 137
Sharing frames......Page 138
Opening the Menu Designer......Page 139
Naming the menu items......Page 141
Adding, inserting, and deleting menu items......Page 142
Creating submenus......Page 143
Viewing the menu......Page 145
Using the Menu Designer context menu......Page 146
Switching between menus at design time......Page 147
Using menu templates......Page 148
Saving a menu as a template......Page 149
Merging menus......Page 150
Importing resource files......Page 151
Designing toolbars and cool bars......Page 152
Assigning a speed button’s glyph......Page 153
Allowing toggle buttons......Page 154
Assigning images to tool buttons......Page 155
Allowing toggled tool buttons......Page 156
Setting the appearance of the cool bar......Page 157
Hiding and showing toolbars......Page 158
Action objects......Page 159
Using actions......Page 160
Executing actions......Page 161
Standard edit actions......Page 163
Standard Help actions......Page 164
How actions find their targets......Page 165
Demo programs......Page 167
Starting a drag operation......Page 169
Dropping items......Page 170
Customizing drag and drop with a drag object......Page 171
Making a control a dockable child......Page 172
Controlling how child controls are docked......Page 173
Setting text alignment......Page 174
Adding scroll bars at runtime......Page 175
Selecting all text......Page 176
Disabling menu items......Page 177
Providing a pop-up menu......Page 178
Adding graphics to controls......Page 179
Adding images to an application......Page 180
Sizing owner-draw items......Page 181
Drawing each owner-draw item......Page 182
Overview of graphics programming......Page 185
Types of graphic objects......Page 186
Common properties and methods of Canvas......Page 187
Using pens......Page 189
Using brushes......Page 191
Drawing lines and polylines......Page 193
Drawing shapes......Page 194
Keeping track of which drawing tool to use......Page 195
Changing the tool with speed buttons......Page 196
Using drawing tools......Page 197
Adding an image control......Page 200
Loading a picture from a file......Page 202
Replacing the picture......Page 203
Using the Clipboard with graphics......Page 204
Pasting graphics from the Clipboard......Page 205
Responding to the mouse......Page 206
Adding a field to a form object to track mouse actions......Page 209
Refining line drawing......Page 210
Adding silent video clips to an application......Page 212
Example of adding silent video clips......Page 213
Adding audio and/or video clips to an application......Page 214
Example of adding audio and/or video clips......Page 215
Defining thread objects......Page 217
Assigning a default priority......Page 218
Writing the thread function......Page 219
Using the main VCL thread......Page 220
Checking for termination by other threads......Page 221
Locking objects......Page 222
Using the multi-read exclusive-write synchronizer......Page 223
Waiting for a thread to finish executing......Page 224
Waiting for a task to be completed......Page 225
Starting and stopping threads......Page 226
Writing applications (.EXEs)......Page 227
Writing libraries......Page 228
Debugging multi-threaded applications......Page 229
Ch 9: Working with packages and components......Page 231
Runtime packages......Page 232
Dynamically loading packages......Page 233
Deciding which runtime packages to use......Page 234
Design-time packages......Page 235
Installing component packages......Page 236
Creating a package......Page 237
Editing package source files manually......Page 238
The Requires clause......Page 239
Compiling packages......Page 240
Package-specific compiler directives......Page 241
Using the command-line compiler and linker......Page 242
Package collection files......Page 243
Localization......Page 247
Double byte character sets......Page 248
Wide characters......Page 249
Including bi-directional functionality in applications......Page 250
BiDiMode property......Page 251
Locale-specific features......Page 253
Graphic images......Page 254
Creating resource DLLs......Page 255
Using resource DLLs......Page 257
Localizing resources......Page 258
Deploying general applications......Page 259
Application files, listed by file name extension......Page 260
DLL locations......Page 261
Borland Database Engine......Page 262
Multi-tiered Distributed Application Services (MIDAS)......Page 263
Screen resolutions and color depths......Page 265
Considerations when dynamically resizing forms and controls......Page 266
Fonts......Page 267
Software license requirements......Page 268
Third-party product documentation......Page 269
Part II: Developing database applications......Page 271
Using databases......Page 273
Remote database servers......Page 274
Transactions......Page 275
Data Dictionary......Page 276
Referential integrity, stored procedures, and triggers......Page 277
Planning for scalability......Page 278
Two-tiered database applications......Page 280
Multi-tiered database applications......Page 281
Displaying a single record......Page 283
Analyzing data......Page 284
Selecting what data to show......Page 285
Writing reports......Page 287
Ch 13: Building one- and two-tiered applications......Page 289
BDE-based architecture......Page 290
Understanding databases and datasets......Page 291
Using sessions......Page 292
Using transactions......Page 293
Using a database component for transactions......Page 294
Using the TransIsolation property......Page 295
Using passthrough SQL......Page 296
Caching updates......Page 297
ADO-based applications......Page 298
Understanding ADO databases and datasets......Page 299
Retrieving data......Page 300
Flat-file database applications......Page 301
Creating a new dataset using persistent fields......Page 302
Creating a dataset using field and index definitions......Page 303
Loading and saving data......Page 304
Using the briefcase model......Page 305
Scaling up to a three-tiered application......Page 306
Ch 14: Creating multi-tiered applications......Page 309
Understanding MIDAS technology......Page 310
Overview of a MIDAS-based multi-tiered application......Page 311
The structure of the application server......Page 312
Using MTS......Page 313
Using the IAppServer interface......Page 315
Using DCOM connections......Page 316
Using Web connections......Page 317
Building a multi-tiered application......Page 318
Creating the application server......Page 319
Configuring TRemoteDataModule......Page 321
Configuring TMTSDataModule......Page 322
Configuring TCorbaDataModule......Page 323
Extending the application server’s interface......Page 324
Extending the application server’s interface when using MTS......Page 325
Creating the client application......Page 326
Specifying a connection using DCOM......Page 327
Specifying a connection using sockets......Page 328
Specifying a connection using OLEnterprise......Page 329
Brokering connections......Page 330
Dropping or changing a server connection......Page 331
Calling server interfaces......Page 332
Managing transactions in multi-tiered applications......Page 333
Supporting state information in remote data modules......Page 334
Writing MIDAS Web applications......Page 336
Creating an Active Form for the client application......Page 337
Building an InternetExpress application......Page 338
Granting permission to access and launch the application server......Page 340
Fetching XML data packets......Page 341
Applying updates from XML delta packets......Page 342
Using the Web page editor......Page 343
Setting Web item properties......Page 344
Customizing the MIDAS page producer template......Page 345
Determining the source of data......Page 347
Specifying what fields appear in data packets......Page 348
Setting options that influence the data packets......Page 349
Adding custom information to data packets......Page 350
Responding to client update requests......Page 351
Editing delta packets before updating the database......Page 352
Influencing how updates are applied......Page 353
Applying updates to datasets that do not represent a single table......Page 355
Handling server constraints......Page 356
Working with a session component......Page 359
Using the default session......Page 360
Creating additional sessions......Page 361
Activating a session......Page 362
Customizing session start-up......Page 363
Creating, opening, and closing database connections......Page 364
Closing all database connections......Page 365
Retrieving information about a session......Page 366
Working with BDE aliases......Page 367
Determining known aliases, drivers, and parameters......Page 368
Creating, modifying, and deleting aliases......Page 369
Iterating through a session’s database components......Page 370
Working with password-protected Paradox and dBase tables......Page 371
Using the RemovePassword and RemoveAllPasswords methods......Page 372
Using the GetPassword method and OnPassword event......Page 373
Managing multiple sessions......Page 374
Using a session component in data modules......Page 375
Understanding persistent and temporary database components......Page 377
Creating database components at runtime......Page 378
Specifying a BDE alias......Page 380
Setting BDE alias parameters......Page 381
Connecting to a database server......Page 382
Working with network protocols......Page 383
Iterating through a database component’s datasets......Page 384
Executing SQL statements from a TDatabase component......Page 385
Executing SQL statements without result sets......Page 386
Executing SQL statements with result sets......Page 387
Executing parameterized SQL statements......Page 388
Ch 18: Understanding datasets......Page 391
Types of datasets......Page 392
Determining and setting dataset states......Page 393
Inactivating a dataset......Page 395
Enabling dataset editing......Page 396
Enabling insertion of new records......Page 397
Filtering records......Page 398
Navigating datasets......Page 399
Using the MoveBy method......Page 400
Eof......Page 401
Marking and returning to records......Page 402
Using Locate......Page 404
Using Lookup......Page 405
Creating filters......Page 406
Setting the Filter property......Page 407
Switching filter event handlers at runtime......Page 408
Navigating records in a filtered dataset......Page 409
Editing records......Page 410
Adding new records......Page 411
Deleting records......Page 412
Modifying entire records......Page 413
Aborting a method......Page 415
Using BDE-enabled datasets......Page 416
Overview of BDE-enablement......Page 417
Using the DatabaseName and SessionName properties......Page 418
Using cached updates......Page 419
Caching BLOBs......Page 420
Ch 19: Working with field components......Page 421
Understanding field components......Page 422
Dynamic field components......Page 423
Persistent field components......Page 424
Creating persistent fields......Page 425
Defining new persistent fields......Page 426
Defining a data field......Page 427
Defining a calculated field......Page 428
Defining a lookup field......Page 429
Deleting persistent field components......Page 431
Setting display and edit properties at design time......Page 432
Setting field component properties at runtime......Page 433
Associating attribute sets with field components......Page 434
Controlling and masking user input......Page 435
Handling events......Page 436
Working with field component methods at runtime......Page 437
Converting field values......Page 438
Accessing field values with a dataset’s FieldByName method......Page 440
Working with constraints......Page 441
Using server constraints......Page 442
Displaying ADT and array fields......Page 443
Accessing ADT field values......Page 444
Accessing array field values......Page 445
Displaying dataset fields......Page 446
Accessing data in a reference field......Page 447
Using table components......Page 449
Specifying a database location......Page 450
Specifying the table type for local tables......Page 451
Controlling read/write access to a table......Page 452
Searching for records......Page 453
Executing a search with Goto methods......Page 454
Specifying the current record after a successful search......Page 455
Repeating or extending a search......Page 456
Specifying a dBASE index file......Page 457
Examining the field list for an index......Page 458
Understanding the differences between ranges and filters......Page 459
Setting the beginning of a range......Page 460
Setting start- and end-range values......Page 461
Applying a range......Page 462
Editing the end of a range......Page 463
Renaming a table......Page 464
Creating a table......Page 465
Importing data from another table......Page 466
Using TBatchMove......Page 467
Creating a batch move component......Page 468
Copying......Page 469
Mapping data types......Page 470
Handling batch move errors......Page 471
Creating master/detail forms......Page 472
Building an example master/detail form......Page 473
Setting up a nested table component......Page 474
Using queries effectively......Page 475
Queries for desktop developers......Page 476
Queries for server developers......Page 477
Using a query component: an overview......Page 478
Specifying the SQL statement to execute......Page 479
Specifying the SQL property at design time......Page 480
Setting the SQL property directly......Page 481
Setting parameters......Page 482
Supplying parameters at design time......Page 483
Using a data source to bind parameters......Page 484
Executing a query at runtime......Page 486
Preparing a query......Page 487
Creating heterogeneous queries......Page 488
Disabling bi-directional cursors......Page 489
Restrictions on live queries......Page 490
Updating a read-only result set......Page 491
Ch 22: Working with stored procedures......Page 493
Using a stored procedure......Page 494
Creating a stored procedure component......Page 495
Creating a stored procedure......Page 496
Retrieving a result set with a TQuery......Page 497
Retrieving a result set with a TStoredProc......Page 498
Retrieving individual values with a TStoredProc......Page 499
Executing an action stored procedure with a TQuery......Page 500
Executing an action stored procedure with a TStoredProc......Page 501
Using input parameters......Page 502
Using output parameters......Page 503
Using the result parameter......Page 504
Setting parameter information at design time......Page 505
Creating parameters at runtime......Page 506
Binding parameters......Page 507
Viewing parameter information at design time......Page 508
Working with Oracle overloaded stored procedures......Page 509
Overview of ADO components......Page 511
Connecting to ADO data stores......Page 512
Specifying the connection......Page 513
Activating and deactivating the connection......Page 514
Specifying connection attributes......Page 515
Controlling the connection login......Page 517
Accessing the connection’s datasets......Page 518
Listing available tables......Page 519
Listing available stored procedures......Page 520
Using ADO datasets......Page 521
Navigating in a dataset......Page 522
Connecting to a data store using ADO dataset components......Page 523
Using batch updates......Page 524
Loading data from and saving data to files......Page 526
Using parameters in commands......Page 527
Using TADODataSet......Page 528
Using TADOTable......Page 529
Using TADOQuery......Page 530
Executing SQL statements......Page 531
Specifying the stored procedure......Page 532
Executing the stored procedure......Page 533
Using parameters with stored procedures......Page 534
Executing commands......Page 536
Canceling commands......Page 537
Handling command parameters......Page 538
Ch 24: Creating and using a client dataset......Page 541
Limiting what records appear......Page 542
Constraining data values......Page 543
Editing data......Page 544
Saving changes......Page 545
Adding a new index......Page 546
Using indexes to group data......Page 547
Representing calculated values......Page 548
Using maintained aggregates......Page 549
Specifying aggregates......Page 550
Obtaining aggregate values......Page 551
Assigning data directly......Page 552
Cloning a client dataset cursor......Page 553
Specifying a data provider......Page 554
Passing parameters to the application server......Page 555
Limiting records with parameters......Page 556
Requesting data from an application server......Page 557
Handling constraints......Page 558
Adding custom constraints......Page 559
Applying updates......Page 560
Reconciling update errors......Page 561
Refreshing records......Page 562
Communicating with providers using custom events......Page 563
Loading data from a file or stream......Page 564
Saving data to a file or stream......Page 565
Deciding when to use cached updates......Page 567
Using cached updates......Page 568
Fetching records......Page 569
Applying cached updates......Page 570
Applying cached updates with a database component method......Page 571
Applying updates for master/detail tables......Page 572
Canceling pending cached updates......Page 573
Undeleting cached records......Page 574
Specifying visible records in the cache......Page 575
Checking update status......Page 576
Specifying the UpdateObject property for a dataset......Page 577
Using multiple update objects......Page 578
Creating SQL statements at design time......Page 579
Understanding parameter substitution in update SQL statements......Page 580
Composing update SQL statements......Page 581
Using an update component’s Query property......Page 582
Using the DeleteSQL, InsertSQL, and ModifySQL properties......Page 583
Calling the SetParams method......Page 584
Calling the ExecSQL method......Page 585
Using dataset components to update a dataset......Page 586
Controlling the update process......Page 587
Creating an OnUpdateRecord event handler......Page 588
Handling cached update errors......Page 589
Indicating the type of update that generated an error......Page 590
Working with error message text......Page 591
Accessing a field’s OldValue, NewValue, and CurValue properties......Page 592
Using common data control features......Page 593
Associating a data control with a dataset......Page 594
Editing data in a control......Page 595
Disabling and enabling data display......Page 596
Using data sources......Page 597
Setting the Name property......Page 598
Using the OnStateChange event......Page 599
Displaying data as labels......Page 600
Displaying and editing text in a memo control......Page 601
Displaying and editing graphics fields in an image control......Page 602
Displaying and editing data in a list box......Page 603
Displaying and editing data in lookup list and combo boxes......Page 604
Specifying a list based on a secondary data source......Page 605
Handling Boolean field values with check boxes......Page 606
Restricting field values with radio controls......Page 607
Viewing and editing data with TDBGrid......Page 608
Creating a customized grid......Page 609
Determining the source of a column property at runtime......Page 610
Creating persistent columns......Page 611
Defining a pick list column......Page 612
Setting column properties at design time......Page 613
Displaying ADT and array fields......Page 614
Setting grid options......Page 616
Editing in the grid......Page 617
Controlling grid drawing......Page 618
Creating a grid that contains other data-aware controls......Page 619
Navigating and manipulating records......Page 621
Hiding and showing navigator buttons at runtime......Page 622
Using a single navigator for multiple datasets......Page 623
Overview......Page 625
One-dimensional crosstabs......Page 626
Guidelines for using decision support components......Page 627
Using datasets with decision support components......Page 628
Creating decision datasets with TQuery or TTable......Page 629
Using the Decision Query editor......Page 630
Using the Decision Cube editor......Page 631
Viewing and changing design options......Page 632
Using decision pivots......Page 633
Creating decision grids......Page 634
Drilling down for detail in decision grids......Page 635
Decision grid properties......Page 636
Using decision graphs......Page 637
Customizing decision graphs......Page 639
Setting decision graph template defaults......Page 640
Customizing decision graph series......Page 641
Decision grids at runtime......Page 642
Setting maximum dimensions, summaries, and cells......Page 643
Using paged dimensions......Page 644
Part III: Writing distributed applications......Page 645
Ch 28: Writing CORBA applications......Page 647
Understanding stubs and skeletons......Page 648
Activating server applications......Page 649
Using the CORBA wizards......Page 650
Defining object interfaces......Page 651
Automatically generated code......Page 653
Registering interfaces with the Interface Repository......Page 654
Registering interfaces with the Object Activation Daemon......Page 655
Writing CORBA clients......Page 657
Using the dynamic invocation interface......Page 658
Calling interfaces with DII......Page 659
Customizing CORBA applications......Page 660
Exposing and hiding CORBA objects......Page 661
Deploying CORBA applications......Page 662
Starting the Smart Agent......Page 663
Connecting Smart Agents on different local networks......Page 664
Terminology and standards......Page 667
HTTP request header information......Page 668
Composing client requests......Page 669
Responding to client requests......Page 670
Win-CGI stand-alone......Page 671
The Web module......Page 672
The structure of a Web server application......Page 673
The Web dispatcher......Page 674
Dispatching request messages......Page 675
The request method type......Page 676
Choosing a default action item......Page 677
Using multiple action items......Page 678
Properties that describe the Web client......Page 679
Properties that describe the content......Page 680
Indicating the response status......Page 681
Setting the response content......Page 682
Using page producer components......Page 683
HTML templates......Page 684
Using page producers from an action item......Page 685
Chaining page producers together......Page 686
Adding a session to the Web module......Page 687
Using dataset page producers......Page 688
Specifying the columns......Page 689
Setting up a query table producer......Page 690
Debugging with a Microsoft IIS server......Page 691
Debugging under MTS......Page 692
Debugging with Netscape Server Version 2.0......Page 693
Debugging as a DLL......Page 694
Implementing services......Page 697
Types of socket connections......Page 698
Describing sockets......Page 699
Choosing between a host name and an IP address......Page 700
Using client sockets......Page 701
Using server sockets......Page 702
Getting information about connections......Page 703
Client events......Page 704
Events with client connections......Page 705
Reading and writing events......Page 706
Using threads with blocking connections......Page 707
Writing client threads......Page 708
Writing server threads......Page 709
Part IV: Creating custom components......Page 711
Visual Component Library......Page 713
How do you create components?......Page 714
Creating windowed controls......Page 715
Creating nonvisual components......Page 716
Properties, methods, and events......Page 717
Methods......Page 718
Creating a new component......Page 719
Using the Component wizard......Page 720
Creating a unit file......Page 722
Registering the component......Page 723
Testing uninstalled components......Page 724
Defining new classes......Page 727
To add new capabilities to a class......Page 728
Ancestors, descendants, and class hierarchies......Page 729
Hiding implementation details......Page 730
Defining the component writer’s interface......Page 731
Defining the design-time interface......Page 732
Static methods......Page 733
Overriding methods......Page 734
Classes and pointers......Page 735
Why create properties?......Page 737
Publishing inherited properties......Page 738
The property declaration......Page 739
Direct access......Page 740
Access methods......Page 741
The write method......Page 742
Specifying no default value......Page 743
Storing and loading properties......Page 744
Specifying default values......Page 745
Initializing after loading......Page 746
Creating methods to store and load property values......Page 747
Overriding the DefineProperties method......Page 748
What are events?......Page 751
Events are properties......Page 752
Event-handler types are procedures......Page 753
Identifying standard events......Page 754
Making events visible......Page 755
Triggering the event......Page 756
Event-specific handlers......Page 757
Calling the event......Page 758
Avoiding dependencies......Page 761
Protecting methods......Page 762
Abstract methods......Page 763
Declaring methods......Page 764
Overview of graphics......Page 765
Using a picture, graphic, or canvas......Page 767
Handling palettes......Page 768
Off-screen bitmaps......Page 769
Copying bitmapped images......Page 770
Responding to changes......Page 771
Understanding the message-handling system......Page 773
Dispatching messages......Page 774
Overriding the handler method......Page 775
Trapping messages......Page 776
Declaring a message identifier......Page 777
Declaring a new message-handling method......Page 778
Registering components......Page 781
Specifying the components......Page 782
Adding palette bitmaps......Page 783
Creating the entries......Page 784
Adding property editors......Page 786
Deriving a property-editor class......Page 787
Setting the property value......Page 788
Editing the property as a whole......Page 789
Specifying editor attributes......Page 790
Registering the property editor......Page 791
Specifying menu items......Page 792
Changing the double-click behavior......Page 793
Adding clipboard formats......Page 794
Property categories......Page 795
Registering multiple properties at once......Page 796
Built-in property categories......Page 797
Using the IsPropertyInCategory function......Page 798
Troubleshooting custom components......Page 799
Creating and registering the component......Page 801
Overriding the constructor......Page 802
Specifying the new default property value......Page 803
Creating and registering the component......Page 805
Adding graphic capabilities......Page 806
Declaring the property......Page 807
Changing default property values......Page 808
Declaring the class fields......Page 809
Initializing owned classes......Page 810
Setting owned classes’ properties......Page 811
Drawing the component image......Page 812
Refining the shape drawing......Page 813
Creating and registering the component......Page 815
Publishing inherited properties......Page 816
Changing initial values......Page 817
Filling in the cells......Page 818
Storing the internal date......Page 819
Accessing the day, month, and year......Page 820
Generating the day numbers......Page 821
Navigating months and years......Page 823
Moving the selection......Page 824
Providing an OnChange event......Page 825
Excluding blank cells......Page 826
Creating a data-browsing control......Page 827
Making the control read-only......Page 828
Allowing needed updates......Page 829
Declaring the class field......Page 830
An example of declaring access properties......Page 831
Responding to data changes......Page 832
Creating a data-editing control......Page 833
Responding to mouse-down messages......Page 834
Responding to key-down messages......Page 835
Modifying the Change method......Page 836
Updating the dataset......Page 837
Defining the component interface......Page 839
Creating and registering the component......Page 840
Adding interface properties......Page 841
Adding the Execute method......Page 842
Testing the component......Page 844
Part V: Developing COM-based applications......Page 845
COM as a specification and implementation......Page 847
Parts of a COM application......Page 848
COM interfaces......Page 849
COM interface pointers......Page 850
CoClasses and class factories......Page 851
In-process, out-of-process, and remote servers......Page 852
The marshaling mechanism......Page 853
COM extensions......Page 854
ActiveX controls......Page 857
Creating type libraries......Page 858
Accessing type libraries......Page 859
Active Server Pages......Page 860
Visual cross-process objects......Page 861
Implementing COM objects with wizards......Page 862
Overview of creating a COM object......Page 865
Creating a COM object with the COM object wizard......Page 866
Choosing a threading model......Page 867
Writing an object that supports the apartment threading model......Page 869
Testing a COM object......Page 870
Creating an Automation controller by importing a type library......Page 871
Handling events in an automation controller......Page 872
Controlling an Automation server using a dual interface......Page 873
Step 2: Import the Word type library......Page 874
Step 3: Use a VTable or dispatch interface object to control Microsoft Word......Page 875
Step 4: Clean-up the example......Page 876
Getting more information......Page 877
Creating an Automation object for an application......Page 879
Managing events in your Automation object......Page 880
Exposing a method for Automation......Page 881
Exposing an event for Automation......Page 882
Registering an out-of-process server......Page 883
Dual interfaces......Page 884
Dispatch interfaces......Page 885
Marshaling data......Page 886
Type restrictions for automatic marshaling......Page 887
Custom marshaling......Page 888
Overview of ActiveX control creation......Page 889
Type library......Page 890
Designing an ActiveX control......Page 891
Generating an ActiveX control from a VCL control......Page 892
Licensing ActiveX controls......Page 893
Generating an ActiveX control based on a VCL form......Page 894
Working with properties, methods, and events in an ActiveX control......Page 896
How Delphi adds properties......Page 897
How Delphi adds events......Page 898
Enabling simple data binding with the type library......Page 899
Enabling simple data binding of ActiveX controls in the Delphi container......Page 900
Creating a property page for an ActiveX control......Page 901
Updating the property page......Page 902
Exposing properties of an ActiveX control......Page 903
Deploying an ActiveX control on the Web......Page 905
Setting options......Page 906
INF file......Page 907
Project tab......Page 908
Packages tab......Page 909
Files associated with project......Page 910
Code Signing tab......Page 911
Timestamp server......Page 912
Cryptographic digest algorithm......Page 913
Ch 49: Creating an Active Server Page......Page 915
Creating an Active Server Page object......Page 916
Creating ASPs for in-process or out-of-process servers......Page 917
Testing and debugging the Active Server Page application......Page 918
Ch 50: Working with type libraries......Page 921
Type Library editor......Page 922
Toolbar......Page 923
Status bar......Page 925
Attributes page......Page 926
Type library information......Page 927
Flags page for a type library......Page 928
Attributes page for an interface......Page 929
Interface methods......Page 930
Interface properties......Page 931
Property and method parameters page......Page 932
Dispatch type information......Page 934
Dispatch members......Page 935
CoClass Implements page......Page 936
CoClass flags......Page 937
Enumeration members......Page 938
Record type information......Page 939
Union type information......Page 940
Module type information......Page 941
Module methods......Page 942
Valid types......Page 943
Attribute specifications......Page 945
Interface syntax......Page 947
CoClass syntax......Page 948
Record syntax......Page 949
Module syntax......Page 950
Opening an existing type library......Page 951
Adding properties and methods to an interface or dispinterface......Page 952
Saving and registering type library information......Page 953
Apply Updates dialog......Page 954
Exporting an IDL file......Page 955
Deploying type libraries......Page 956
Ch 51: Creating MTS objects......Page 957
Microsoft Transaction Server components......Page 958
Just-in-time activation......Page 960
Resource pooling......Page 961
Accessing the object context......Page 962
Transaction attributes......Page 963
Stateful and stateless objects......Page 964
Enabling multiple objects to support transactions......Page 965
Transaction timeout......Page 966
Resource dispensers......Page 967
Example: Sharing properties among MTS object instances......Page 968
Tips for using the Shared Property Manager......Page 969
MTS underlying technologies, COM and DCOM......Page 970
Using the MTS Object wizard......Page 971
Choosing a threading model for an MTS object......Page 972
Setting the transaction attribute......Page 973
Using the SafeRef method......Page 974
Setting up a transaction object on the client side......Page 975
Debugging and testing MTS objects......Page 976
Installing MTS objects into an MTS package......Page 977
Using MTS documentation......Page 978
A......Page 981
B......Page 983
C......Page 984
D......Page 989
E......Page 993
F......Page 995
G......Page 996
H......Page 997
I......Page 998
J - L......Page 1000
M......Page 1001
N......Page 1003
O......Page 1004
P......Page 1006
Q - R......Page 1008
S......Page 1010
T......Page 1013
U......Page 1017
V - W......Page 1018
X - Z......Page 1019