Note: generally obsolete content, you shouldn't
have to know this!
The Custom Parameter Set is an alternate set of properties that the
end-user can adjust which supports the ability to quickly switch between
the default-programmed state and any user-modified state. If NoCustomParms
is set to FALSE, any time the end-user uses the customization dialog or
popup menu, the Custom Parameter Set is invoked . The end-user can then
click the "Original" button to switch between the programmed
set and the end-user altered set. This feature can add complexity to your
project if the implementation is adding its own end-user interfaces.
We hope to phase out and eventually replace the Custom Parameter Set
with an alternate solution. The replacement will hopefully be backward
compatible but its not certain. However, the bottom-line is that using
the Custom Parameter Set has potential to complicate the implementation.
Programmers new to ProEssentials who are writing a complex implementation
should leave this feature disabled
until their project is nearing completion. Then if desired, enable and
evaluate how much work it will take to support.
When version 3 was released, we recommended that the property NoCustomParms
be set to TRUE. This disabled the Custom parameter set and you won't have
to consider any material in this section. If you set NoCustomParms
to FALSE, then pay extra attention to the information below.
Version 5 now defaults NoCustomParms to TRUE. This means if porting
from v3 to v6, your controls will automatically lose the "Original
Button" and the Custom Parameter Set logic if it was enabled. You
can add one line of code to set NoCustomParms back to FALSE if you
want to preserve this logic in your projects.
If a property is a customizable property, it will have a Custom version
for the property. For example, ViewingStyle
is a customizable property (the customization dialog allows the user to
adjust this property) and its Custom version is PEP_nCVIEWINGSTYLE. ViewingStyle
belongs to the Original parameter set and PEP_nCVIEWINGSTYLE belongs to
the Custom parameter set. When looking at a property in the reference
material, it notes if it supports the Custom Parameter Set. Look
in the file "PEGRPAPI.H" for the property to see if a customizable
version is defined starting with "C".
The property Custom is used to control
which of the two parameter sets is used in producing the objects image.
IF Custom is TRUE, then the Custom parameter set is used, otherwise,
the Original parameter set is used. When the user uses a customization
dialog or popup menu, the Custom parameter set is being adjusted and Custom
will be set to TRUE.
If you and your users will be making customizations to the graph (AllowCustomization or AllowPopup
are TRUE), you may want to make sure Custom is set to FALSE any time
you make programmatic customizations. Or if you want to preserve any current
user customizations, you can set both the original and customer versions
as follows. This can be tedious setting both custom and original properties.
Setting NoCustomParms to TRUE will free you from worrying about the
custom parameter set and you can set regular properties as needed.
The following code examples set both the Original and Custom parameter
versions of the ScrollingSubsets and TableWhat properties. These properties
were chosen by random and show the basic concept.
C / C++ Example
The handle hWndPE specifies a ProEssentials object previously created.
// Setting Original versions //
// Setting Custom versions //
PEresetimage (hWndPE, 0, 0);
InvalidateRect(hWndPE, NULL, FALSE);
Visual Basic Example
The Graph Object Pego1 is located in a form.
'** Setting Original versions **'
Pego1.ScrollingSubsets = 1
Pego1.TableWhat = PETW_ALLSUBSETS
'** Setting Custom versions **'
result = PEnset(Pego1.hObject, PEP_nCSCROLLINGSUBSETS, 1)
result = PEnset(Pego1.hObject, PEP_nCTABLEWHAT, PETW_ALLSUBSETS)
To summarize, if NoCustomParms is FALSE and AllowCustomization
or AllowPopup is TRUE, and you will also be making programmatic customizations,
you need to be aware of Custom. If not, you may make property adjustments
and not see the graph change to reflect those new property adjustments.