:Base DEL4CW.hlp>main
:Title Component Writer's Guide

1 Creating Custom Components
2 Introduction to component creation
3 Overview of component creation=cwgOverviewOfComponentCreation
3 The Visual Component Library=cwgTheVisualComponentLibrary
3 Components and classes=cwgComponentsAndObjects
3 How do you create components?=cwgWhatKindsOfComponentsCanYouCreate
3 Modifying existing controls=cwgCustomControls
3 Creating original controls=cwgWindowedControls
3 Creating graphic controls=cwgGraphicalControls
3 Subclassing Windows controls=cwgSubclassedControls
3 Creating nonvisual components=cwgGenericComponents
3 What goes into a component?=cwgWhatGoesIntoAComponent
3 Removing dependencies=cwgRemovingContracts
3 Properties, methods, and events=cwgPropertiesMethodsAndEvents
3 Graphics encapsulation=cwgGraphicsEncapsulation
3 Registration Overview=cwgStreamingAndRegistration
3 Creating a new component=cwgCreatingANewComponent
3 Using the Component wizard=cwgUsingTheComponentExpert
3 Creating a component manually=cwgCreatingAComponentManually
3 Creating a unit=cwgCreatingAUnit
3 Deriving the component=cwgDerivingTheComponentObject
3 Registering the component=cwgRegisteringTheComponent
3 Testing uninstalled components=cwgTestingUninstalledComponents
2 Object-oriented programming for component writers
3 Object-oriented programming for component writers: Overview=cwgOOPForComponentWriters
3 Defining new classes=cwgDerivingNewObjects
3 Deriving new classes=cwgDerivingNewTypes
3 Changing class defaults to avoid repetition=cwgChangingTypeDefaults
3 Adding new capabilities to a class=cwgAddingNewCapabilities
3 Declaring a new component class=cwgDeclaringANewComponentType
3 Ancestors and descendants=cwgAncestorsAndDescendants
3 Controlling access=cwgControllingAccess
3 Hiding implementation details=cwgHidingImplementationDetails
3 Defining the developer's interface=cwgDefiningTheDevelopersInterface
3 Defining the runtime interface=cwgDefiningTheRunTimeInterface
3 Defining the design-time interface=cwgDefiningTheDesignTimeInterface
3 Dispatching methods=cwgDispatchingMethods
3 Static methods=cwgStaticMethods
3 Virtual methods=cwgOOPVirtualMethods
3 Overriding methods=cwgOverridingMethods
3 Dynamic methods=cwgDynamicMethods
3 Abstract class members=cwgAbstractClassMembers
3 Classes and pointers=cwgObjectsAndPointers
2 Creating properties
3 Creating properties: Overview=cwgCreatingProperties
3 Why create properties?=cwgPropertyWhy
3 Types of properties=cwgPropertyTypes
3 Publishing inherited properties=cwgPublishingInheritedPropertiesP
3 Defining component properties=cwgDefiningProperties
3 The property declaration=cwgPropertyDeclaration
3 Internal data storage (properties)=cwgPropertyStorage
3 Direct access=cwgDirectAccess
3 Access methods (properties)=cwgPropertyMethods
3 The read method=cwgTheReadMethod
3 The write method=cwgTheWriteMethod
3 Default property values=cwgDefaultPropertyValues
3 Specifying no default value=cwgSpecifyingNoDefaultValue
3 Creating array properties=cwgCreatingIndexedProperties
3 Storing and loading properties=cwgStoringAndLoadingProperties
3 Using the store-and-load mechanism=cwgStoreLoad
3 Specifying default values=cwgSpecifyingDefaultValues
3 Determining what to store=cwgStoringUnpublishedData
3 Initializing after loading=cwgInitializingAfterLoading
2 Creating events
3 Creating events: Overview=cwgCreatingEvents
3 What are events?=cwgWhatAreEvents
3 Events are method pointers=cwgEventsAreMethodPointers
3 Calling the click-event handler=cwgEventsAreMethodPointersEx
3 Events are properties=cwgEventsAreProperties
3 Event types are method-pointer types=cwgEventTypesAreMethodPointerTypes
3 Event handler types are procedures=cwgEventHandlerTypesAreProcedures
3 Event handlers are optional=cwgEventHandlersAreOptional
3 Implementing the standard events=cwgImplementingTheStandardEvents
3 Identifying standard events=cwgWhatAreTheStandardEvents
3 Making events visible=cwgMakingEventHooksVisible
3 Changing the standard event handling=cwgChangingTheStandardEventHandling
3 Defining your own events=cwgDefiningYourOwnEvents
3 Triggering the event=cwgSpecifyingTheEvent
3 Two kinds of events=cwgTwoKindsOfEvents
3 Defining the handler type=cwgDefiningTheHandlerType
3 Declaring the event=cwgDeclaringTheEvent
3 Calling the event=cwgCallingTheEvent
3 Empty handlers must be valid=cwgEmptyHandlers
3 Users can override default handling=cwgUsersCanOverrideDefaultHandling
2 Creating methods
3 Creating methods: Overview=cwgCreatingMethods
3 Avoiding interdependencies=cwgAvoidContracts
3 Naming methods=cwgNamingMethods
3 Protecting methods=cwgPublicOrProtected
3 Methods that should be public=cwgMethodsThatShouldBePublic
3 Methods that should be protected=cwgMethodsThatShouldBeProtected
3 Abstract methods=cwgAbstractMethods
3 Making methods virtual=cwgVirtualMethods
3 Declaring methods=cwgDeclaringMethods
2 Using graphics in components
3 Using graphics in components: Overview=cwgUsingGraphicsInComponents
3 Overview of graphics=cwgOverviewOfGraphics
3 Using the canvas=cwgUsingTheCanvas
3 Working with pictures=cwgWorkingWithPictures
3 Using a picture, graphic, or canvas=cwgPicturesGraphicsAndCanvases
3 Loading and storing graphics=cwgGraphicsInFiles
3 Handling palettes=cwgHandlingPalettes
3 Specifying a palette for a control=cwgSpecifyingAPaletteForAControl
3 Responding to palette changes=cwgRespondingToPaletteChanges
3 Offscreen bitmaps=cwgOffscreenBitmaps
3 Creating and managing off-screen bitmaps=cwgCreatingAndManagingOffscreenBitmaps
3 Copying bitmapped images=cwgCopyingBitmappedImages
3 Responding to changes=cwgRespondingToChanges
2 Handling messages
3 Handling messages: Overview=cwgRespondingToMessages
3 Understanding the message-handling system=cwgUnderstandingMessages
3 What's in a Windows message?=cwgWhatsInAWindowsMessage
3 Dispatching messages=cwgDispatchingMessages
3 Changing message handling=cwgChangingMessageHandling
3 Overriding the handler method=cwgOverridingTheResponseMethod
3 Using message parameters=cwgUsingMessageParameters
3 Trapping messages=cwgTrappingMessages
3 The WndProc method=cwgTrappingMessagesEx
3 Creating new message handlers=cwgCreatingNewMessageHandlers
3 Declaring a message identifier=cwgDeclaringAMessageIdentifier
3 Declaring a message-structure type=cwgDeclaringAMessageType
3 Declaring a new message-handling method=cwgDeclaringANewMessageResponseMethod
2 Making components available at design time
3 Making components available at design time: Overview=cwgMakingComponentsAvailableAtDesignTime
3 Registering components=cwgRegisteringComponentsWithTheIDE
3 Declaring the register procedure=cwgDeclaringTheRegisterFunction
3 Writing the Register function=cwgWritingTheRegisterFunction
3 Specifying the components=cwgSpecifyingTheComponents
3 Specifying the palette page=cwgSpecifyingThePalettePage
3 Using the RegisterComponents function=cwgUsingTheRegisterComponentsFunction
3 Adding palette bitmaps=cwgAddingPaletteBitmaps
3 Providing Help for your component=cwgProvidingHelpOnProperties
3 Creating the help file=cwgCreatingTheHelpFile
3 Creating the entries=cwgCreatingTheEntries
3 Making component help context-sensitive=cwgMakingComponentHelpContextSensitive
3 Adding help files to Delphi help=cwgAddingComponentHelpToSystemHelp
3 Adding property editors=cwgAddingPropertyEditors
3 Deriving a property-editor class=cwgDerivingAPropertyEditorObject
3 Setting the property value=cwgSettingThePropertyValue
3 Editing the property as a whole=cwgEditingThePropertyAsAWhole
3 Specifying editor attributes=cwgSpecifyingEditorAttributes
3 Registering the property editor=cwgRegisteringThePropertyEditor
3 Adding component editors=cwgAddingComponentEditors
3 Adding items to the context menu=cwgAddingItemsToTheContextMenu
3 Specifying menu items=cwgSpecifyingMenuItems
3 Implementing commands=cwgImplementingCommands
3 Changing the double-click behavior=cwgChangingTheDoubleClickBehavior
3 Adding clipboard formats=cwgAddingClipboardFormats
3 Registering the component editor=cwgRegisteringTheComponentEditor
3 Compiling components into packages=cwgCompilingComponentsIntoPackages
2 Modifying an existing component
3 Modifying an existing component: Overview=cwgModifyingAnExistingComponent
3 Creating and registering the component=cwgCreatingAndRegisteringTheComponent
3 Modifying the component object=cwgModifyingTheComponentObject
3 Overriding the constructor=cwgOverridingTheConstructor
3 Specifying the new default property value=cwgSpecifyingTheNewDefaultPropertyValue
2 Creating a graphic component
3 Creating a graphic component=cwgCreatingAGraphicComponent
3 Creating and registering the component=cwgCreatingAndRegisteringTheComponentS
3 Publishing inherited properties=cwgPublishingInheritedPropertiesS
3 Adding graphic capabilities=cwgAddingGraphicCapabilities
3 Determining what to draw=cwgDeterminingWhatToDraw
3 Declaring the property type=cwgDeclaringThePropertyType
3 Declaring the property=cwgDeclaringTheProperty
3 Writing the implementation method=cwgWritingTheImplementationMethod
3 Overriding the constructor and destructor=cwgOverridingTheConstructorAndDestructor
3 Publishing the pen and brush=cwgPublishingThePenAndBrush
3 Declaring the class fields=cwgDeclaringTheClassFields
3 Declaring the access properties=cwgDeclaringTheAccessProperties
3 Initializing owned classes=cwgInitializingOwnedClasses
3 Setting owned classes' properties=cwgSettingOwnedClassesProperties
3 Drawing the component image=cwgDrawingTheComponentImage
3 Refining the shape drawing=cwgRefiningTheShapeDrawing
2 Customizing a grid
3 Customizing a grid: Overview=cwgCustomizingAGrid
3 Creating and registering the component=cwgCreatingAndRegisteringTheComponentC
3 Publishing inherited properties=cwgPublishingInheritedPropertiesC
3 Changing initial values=cwgChangingInitialValues
3 Resizing the cells=cwgResizingTheCells
3 Filling in the cells=cwgFillingInTheCells
3 Tracking the date=cwgTrackingTheDate
3 Storing the internal date=cwgStoringTheInternalDate
3 Accessing the day, month, and year=cwgAccessingTheDayMonthAndYear
3 Generating the day numbers=cwgGeneratingTheDayNumbers
3 Selecting the current day=cwgSelectingTheCurrentDay
3 Navigating months and years=cwgNavigatingMonthsAndYears
3 Navigating days=cwgNavigatingDays
3 Moving the selection=cwgMovingTheSelection
3 Providing an OnChange event=cwgProvidingAnOnChangeEvent
3 Excluding blank cells=cwgExcludingBlankCells
2 Making a control data aware
3 Making a control data aware=cwgMakingAControlDataAware
3 Creating a data-browsing control=cwgCreatingAData-browsingControl
3 Creating and registering the component=cwgCreatingAndRegisteringTheComponentDB
3 Making the control read-only=cwgMakingTheControlRead-only
3 Adding the read-only property=cwgAddingTheReadOnlyProperty
3 Allowing needed updates=cwgAllowingNeededUpdates
3 Adding the data link=cwgAddingTheDataLink
3 Declaring the class field=cwgDeclaringTheClassField
3 Declaring the access properties for a data-aware control=cwgDeclaringTheAccessProperties2
3 Initializing the data link=cwgInitializingTheDataLink
3 Responding to data changes=cwgRespondingToDataChanges
3 Creating a data-editing control=cwgCreatingAData-editingControl
3 Changing the default value of FReadOnly=cwgChangingTheDefaultValueOfFReadOnly
3 Handling mouse-down and key-down messages=cwgHandlingMouse-downAndKey-downMessages
3 Responding to mouse-down messages=cwgRespondingToMouseDownMessages
3 Responding to key-down messages=cwgRespondingToKeyDownMessages
3 Updating the field data-link object=cwgUpdatingTheFieldData-linkObject
3 Modifying the Change method=cwgModifyingTheChangeMethod
3 Updating the dataset=cwgUpdatingTheDataset
2 Making a dialog box a component
3 Making a dialog box a component: Overview=cwgMakingADialogBoxAComponent
3 Defining the component interface=cwgDefiningTheComponentInterface
3 Creating and registering the component=cwgCreatingAndRegisteringTheComponentDlg
3 Creating the component interface=cwgCreatingTheComponentInterface
3 Including the form unit=cwgIncludingTheFormUnit
3 Adding interface properties=cwgAddingInterfaceProperties
3 Adding the Execute method=cwgAddingTheExecuteMethod
3 Testing the component=cwgTestingTheComponent

