:Base d7cw.hlp>main
:Title Creating Custom Components
; 
1 Component Writer's Guide
2 Introduction to component creation
3 Overview of component creation=cwgoverviewofcomponentcreation
3 Class library=cwgthevisualcomponentlibrary
3 Components and classes=cwgcomponentsandobjects
3 Creating 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 Setting properties, methods, and events=cwgpropertiesmethodsandevents
3 Encapsulating graphics=cwggraphicsencapsulation
3 Registering components=cwgstreamingandregistration
3 Creating a new component=cwgcreatinganewcomponent
3 Creating a component with the Component wizard=cwgusingthecomponentexpert
3 Creating a component manually=cwgcreatingacomponentmanually
3 Creating a unit file=cwgcreatingaunit
3 Deriving the component=cwgderivingthecomponentobject
3 Registering the component=cwgregisteringthecomponent
3 Creating a bitmap for a component=cwgaddingpalettebitmaps
3 Installing a component on the Component palette=cwginstallingacomponent
3 Making source files available=cwgwheretoplaceyourcomponent
3 Testing uninstalled components=cwgtestinguninstalledcomponents
3 Testing installed components=cwgtestinginstalledcomponents
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, descendants, and class hierarchies=cwgancestorsanddescendants
3 Controlling access=cwgcontrollingaccess
3 Hiding implementation details=cwghidingimplementationdetails
3 Defining the component writer'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 properties=cwgdefiningproperties
3 Property declarations=cwgpropertydeclaration
3 Internal data storage=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 Creating properties for subcomponents=cwgcreatingpropertiesforsubcomponents
3 Creating properties for interfaces=cwgcreatingpropertiesforinterfaces
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
3 Storing and loading unpublished properties=cwgstoringandloadingunpublishedproperties
3 Creating methods to store and load property values=cwgcreatingmethodstostoreandloadpropertyvalues
3 Overriding the DefineProperties method=cwgoverridingthedefinepropertiesmethod
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 Off-screen 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 and system notifications: 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 Defining your own messages=cwgdefiningyourownmessages
3 Declaring a message identifier=cwgdeclaringamessageidentifier
3 Declaring a message-structure type=cwgdeclaringamessagetype
3 Declaring a new message-handling method=cwgdeclaringanewmessageresponsemethod
3 Sending messages=sendingmessages
3 Broadcasting a message to all controls in a form=broadcastingamessagetoallcontrolsinaform
3 Calling a control's message handler directly=callingacontrolsmessagehandlerdirectly
3 Sending a message using the Windows message queue=sendingamessageusingthewindowsmessagequeue
3 Sending a message that does not execute immediately=sendingamessagethatdoesnotexecuteimmediately
3 Responding to system notifications using CLX=respondingtosystemnotificationsusingclx
3 Responding to signals=respondingtosignals
3 Assigning custom signal handlers=assigningcustomsignalhandlers
3 Responding to system events=respondingtosystemevents
3 Commonly used events=commonlyusedevents
3 Overriding the EventFilter method=overridingtheeventfiltermethod
3 Generating Qt events=generatingqtevents
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 procedure=cwgwritingtheregisterfunction
3 Specifying the components=cwgspecifyingthecomponents
3 Specifying the palette page=cwgspecifyingthepalettepage
3 Using the RegisterComponents function=cwgusingtheregistercomponentsfunction
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 component Help files=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 Property categories=cwgpropertycategories
3 Registering one property at a time=cwgregisteringonepropertyatatime
3 Registering multiple properties at once=cwgregisteringmultiplepropertiesatonce
3 Specifying property categories=cwgpropertycategoryclasses
3 Using the IsPropertyInCategory function=cwgusingtheispropertyincategoryfunction
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 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
2 Extending the IDE
3 Extending the IDE=cwgextendingtheide
3 Overview of the Tools API=cwgoverviewofthetoolsapi
3 Writing a wizard class=cwgwritingawizardclass
3 Implementing the wizard interfaces=cwgimplementingthewizardinterfaces
3 Installing the wizard package=cwginstallingthewizardpackage
3 Obtaining Tools API services=cwgobtainingtoolsapiservices
3 Using native IDE objects=cwgusingnativeideobjects
3 Adding an image to the image list=cwgaddinganimagetotheimagelist
3 Adding an action to the action list=cwgaddinganactiontotheactionlist
3 Deleting toolbar buttons=cwgdeletingtoolbarbuttons
3 Debugging a wizard=cwgdebuggingawizard
3 Interface version numbers=cwginterfaceversionnumbers
3 Working with files and editors=cwgworkingwithfilesandeditors
3 Using module interfaces=cwgusingmoduleinterfaces
3 Using editor interfaces=cwgusingeditorinterfaces
3 Creating forms and projects=cwgcreatingformsandprojects
3 Notifying a wizard of IDE events=cwgnotifyingawizardofideevents
