Exclusive Excerpt from PFC Programmer's Reference Manual, by Rik Brooks
Appendix by Sharon Weinstrom Buntz
pfc_w_master is the Top-Most Ancestor of ALL windows in the PFC;
"Great, Great Grandpa" of ALL PFC Windows.
Think about that for a minute
That means that there is a family tree for five generations (at least),
and so there are a lot of family members under Great, Great Grandpa!

Figure 1 - pfc_w_master is the "Great, Great Grandpa" of ALL PFC Windows
Using the PFC, ALL of your windows will descend from
pfc_w_master.
So that means that every single window in your application is affected by what
pfc_w_master does.
All of the main "plumbing" of the PFCs
"framework" is included in
pfc_w_master. It has to be there for the PFC to work properly, re-routing events of the
window to all of the proper services, other visual objects or other pfc_w_master events. By the way, if you
arent yet familiar with the concept of "Service-based Architecture", it
would be a good idea to read up on it. Two good sources for this are:
Powersofts white paper on PFC http://www.powersoft.com/products/devtools/pb50/pfcarch.html#overview William T. Greens white paper on SBA http://www.concentric.net/~Bgcastle/SBA/SBA_Main.html
Next down the chain of ancestry from
pfc_w_master is w_master. W_master is pfc_w_masters
direct descendant, the only direct descendant in fact.
Continuing down from w_master, then descend all of the different types of windows, such as a Frame, a Sheet, a "Main SDI" window, a Response window and so on. There are six of them. Take a look at them in Figure 2. Notice how the descendants from w_master are "higher-level" PFC-level pfc_w_ objects, not just PFE-level w_ objects. Then come the w_<6 types> objects, the ones from which you will inherit all of your application-specific windows. These are w_frame, w_sheet, w_main, w_response, w_popup and w_child.

Figure 2 - pfc_w_master è w_master è six window type
descendants from which you will inherit
This picture was derived from PowerBuilders native Browser
Output Documentation
Try it out by pressing the
PowerBuilder PowerBar toolbar.
Note
Take notice how the PFC/PFE/PFC/PFE objects
spiral has you walk down the chain of inheritance. Although we will not go into this in
detail, it is important to realize this early on. This is so that you can understand the regeneration
implications of the PFC objects being inherited from the PFE objects (which
normally sounds backwards).
As a PFC programmer, all of your windows will always be descendants of pfc_w_master. (You should never inherit directly from the PowerBuilder Window type in a PFC application.) This is because PFC needs all of the "plumbing" for the PFC "framework" that is provided in pfc_w_master in all of its windows in order to work properly. And that is why it is so important to understand pfc_w_master. Because from him all of your PFC windows descend, and he drives all of the PFCs objects and main processes..
Understand
pfc_w_master, and you shall understand a lot about the PFC and how to manage all of your
windows!
Which of these six window type
descendants of
pfc_w_master do I inherit from?
You will always inherit from one of these six window type descendants (or lower) of pfc_w_master: w_frame, w_sheet, w_main, w_response, w_popup or w_child. The type that you select depends on the type of window you want for that particular situation.
If you are using MDI (Multiple Document Interface ~ like PowerBuilder itself does), then w_frame is the MDI frame ancestor, and your application's frame w_<your app>_frame will inherit from him. And w_sheet is the ancestor from which each of your frame's MDI sheets will be inherited from, for example w_se_transcript_maint.
If you are not using MDI, but rather SDI (Single Document Interface), where you don't need a frame with lots of sheets within it, then you would inherit from w_main rather than w_sheet for each of your main windows.
From either your MDI or SDI application, for other types of windows, inherit from either w_response, w_popup or w_child.
So basically, every time you open the Window Painter to create a new
application window, you will select "Inherit", and then you will select one of
these six windows to inherit from - w_frame, w_sheet, w_main, w_response, w_popup and w_child. You may have a need to inherit from a lower level down, but just realize that
you will never inherit directly from either
pfc_w_master, w_master or
PowerBuilders native window objects.
Keep in mind, the PFC follows this same scheme with the ready-made windows that it comes with. So, the PFC itself contains some descendants of these six window type descendants. Take for example, w_logon, which is inherited from pfc_w_logon, which is inherited from w_response.
Figure 3 illustrates how to inherit from the six window type descendants for MDI apps and SDI apps. It also shows how the PFC itself contains some descendants from these six window type descendants. Here we are using "se_***" as our naming convention for our application objects.

Figure 3 - You should inherit from these six window types,
such as w_frame è w_se_frame
for an MDI frame.
Note that there are already some PFC objects descending from these, such as w_response è pfc_w_logon è w_logon.
Would I ever
customize my
pfc_w_master?
Probably not. You will probably never customize or change
pfc_w_master. This is because you should almost
never change the PFC-level source directly yourself. Here are some reasons why
- For one, it will throw Powersofts customer support for a loop. It is probably even written in the support contract that they will not support you if you do so.
- Secondly, sticking to the base will benefit you because then you are in tune with all of the other PFCers out there. So everyone is on the "same page". Also, then you may easily take advantage of other PFC extensions written by others.
- Thirdly, you would normally take advantage of the PFE layer to enhance or correct the PFC level objects. That is why the PFE layer is there, that is its purpose. (Please see the next section for details.)
So only new releases of the PFC would change (actually replace) your PFC PBLs.
Now having said all that, there is one exception to this golden rule.
You may want to change the PFC-layer source code directly if a PFC release has already
come out with a known, existing, official fix, and you have not yet migrated
to that version. (Later, we will show you two specific cases of these, under
Bug Alert!) Or perhaps Powersoft has
announced a patch or such.
In any case, you would want to document profusely just exactly what you
had changed (see Note
below).
This is because you would want to double-check or re-implement any changes that you make
to the PFC objects after installing the new version of the PFC objects. Remember, new
releases replace your PFC PBLs. And remember, these cases where you change the PFC objects
directly should be rare anyway.
Would I ever
customize my
w_master?
Yes, there are a couple of cases where you may want to customize
w_master.
Note
Lets add up front, that you should document profusely any changes that you make to w_master, in the actual object (preferably with a standard comment that you copy and paste from say a global function), and in an external document. This goes for w_master as well as any other PFE level object that you might enhance. This will help you incorporate future PFC releases. Another helpful tip on remembering to which PFE objects that your company has actually made changes, is to keep those objects in a separate PBL. So when you modify a PFE object, you would remove it from your regular PFE PBL, and add it to your extra PFE PBL.
- First case, you might change w_master if you were enhancing the PFC code in pfc_w_master, or making a temporary fix to the pfc_w_master code. In these cases, you would be either extending the pfc_w_master code, overriding the pfc_w_master code, or possibly adding new instance variables, new window functions or new user events. Which leads us to the second case
- And, secondly, you may have a need to create one or more "empty, placeholder, virtual" events yourself, modeled after how the PFC is designed and written. So you would define these user events in w_master. But still, even in this case, consider whether you really want these new empty events for all of your windows, rather than just a subset, or only for special case application windows. This is because events "fail silently", so they dont actually have to exist on a window that does not need the special event. But there may be cases where you would want to cover all windows
For example, perhaps you are in an environment where you always have some particular master or offline process to alert (via a special table) before and after performing your updates, that contains information about your updates.
In this case one might add pre-update and post-update user events to w_master for processes that fall within the Logical Unit of Work processing (as the PFC events that are already there, are processed outside of the database transaction). You might call these new events, say, (ue_PreUpdateInLUW and ue_PostUpdateInLUW) or (ue_TranPreUpdate and ue_TranPostUpdate), just as some examples. It is discouraged to use the pfc_ prefix on your own added user events.
Then, of course, you would have to trigger them in the appropriate place. In our example, w_masters pfc_update could be overridden, trigger the first new user event, call the ancestors event, and finally trigger the second new user event.
And now, all of your windows will have these empty events, ready to be extended in the appropriate descendants. And every window will know to execute them when the time comes.
We might add here though, that in the
PFC 6.0 Release, the Save Process in the
pfc_w_master will be dramatically enhanced. So be careful with any enhancements or changes that you make to the save process.
Other than those two cases though, usually you would not actually want
to modify w_master
directly. This is because any change that you make to w_master will affect ALL
of your windows since w_master is the ancestor of all PFC windows (other than pfc_w_master). So keep in mind, whenever you add
instance variables, events, and functions to w_master, the changes will impact all PFC windows. And so it follows that you should regenerate
all of your windows immediately thereafter. To reemphasize the impact, when you
regenerate all of your windows after adding new attributes and methods to w_master, you are affecting the
compiled version of all of your windows, including the PFC-level objects. This is due to
the spiraling dependancies between the PFC/PFE/PFC/PFE objects that we touched on in Figure 2 captions Note
.
But, usually, rather than changing w_master, you would modify one of the six window type descendants (or lower) of pfc_w_master. For example, you would normally just want to change, say w_sheet, to add functionality to all of your sheets, not ALL of your windows.
Two Big Pictures of
pfc_w_master
Lets take one more look at the window hierarchy here in Figure 4

Figure 4 - Another viewpoint of the pfc_w_master relatives
And below, in Figure 5, heres the "Big picture" from your PFC 5.0.03 Online Help.
This is what we will cover in detail
We will be covering up through the 5.0.03 release with an indicator of
5.0.0# beside
what is new since 5.0.00.
The changes in the
PFC 6.0 Release are drastic enough (and not
finalized as of this writing) to merit leaving them out of this section. It would actually
confuse you more than it would help you to interweave them into here. So we will just
focus on 5.0.0# versions. But dont worry, to satisfy your curiosity, and to tie in
where the PFC is going with 6.0, we will outline in detail what is projected for the PFC 6.0 Release in the
last section. So, as hard as it is now to say with certainty what will actually be
released in the next version, it is important to try ~ as you will probably be reading
this after 6.0 is out.


Figure 5 - All about pfc_w_master - Check out the PFC Help Often
What does
pfc_w_master contain?
Now that we see the big pictures, roll up your sleeves! Its time
to get down to the technical details and learn all about
pfc_w_master
pfc_w_master contains:
Instance variables to keep track of key information needed for the window,
such as flags, an array of all of the controls on the window which will be updated, a database error string, and all of the instances of the Window Services that are CREATEd when you call the window functions to turn them on.
Functions to access all of the
Instance variables which are
protected,
as every good Object-Oriented program provides.
(By the way, there are no private instance variables in pfc_w_master.)
Functions to turn on and off the Window Services,
specifically the Basic Window Service, the Window Preference Service and the Window Resize Service. Please note that the Sheet Management Service and the Status Bar Service are included in pfc_w_masters descendant, pfc_w_frame, not pfc_w_master itself.
Function to do pre-update checks
The key
of_UpdateChecks( ) function does an AcceptText( ) on all DataWindows, checks for pending updates, load an array of controls to update and perform validations.
Pre-coded
Native PowerBuilder events
that automatically handle a lot of the functionality that is needed by all windows. Key native PowerBuilder events, such as the Open, CloseQuery, Close, Resize and Move events, already have PFC code in them to handle basic window processing logic. Most of the code simply "re-routes" the processing off to the proper Non-visual User Object which handles a particular Services processing. The CloseQuery is a KEY, important PFC event, so be sure to read up on it below. Also, realize that at the bottom of the Close event, the PFC automatically does some housekeeping for you to turn off (DESTROY) any window services which may have been turned on for that window.
Pre-coded and
Partially-coded+Extendable PFC User Events
that automatically handle a lot of the functionality that is needed by all windows. Key PFC user events, such as the pfc_Save, pfc_MessageRouter, pfc_Help, pfc_MicroHelp, pfc_ControlGotFocus and pfc_Close events, already have PFC code in them to handle basic window processing logic. Some of them, like the Save event, spawns off a whole sequence of other pre-/extendable-/coded and "empty" events to automatically handle the flow of events for you. The pfc_MessageRouter "Message Router" is a special event that will go looking for an object which has a particular user event, and it will trigger the event on the object that it finds. Be sure to read up on the pfc_Save and the pfc_MessageRouter events, as they are KEY, important PFC events.
Note
Take note that on anyPartially-coded+Extendable User Event If you do have a need to "extend" the script for any of these
events, you should first check the ancestors return code. I say "extend" because in order to check the ancestors return code (at least pre-PowerBuilder 6.0), you must override the ancestor script. At any rate, it is important to check the ancestors return code because there is already script in the PFCs ancestor code, and it may fail.
The most common events in this category that PFCers sometimes "extend" are:
pfc_AcceptText
pfc_PostUpdate
pfc_Update
pfc_UpdatesPending
pfc_Validation
These events are often extended in order to have them recognize other controls such as the ListView and TreeView controls However, please note
Note: In the
PFC 6.0 Release, rather than having to extend these events to recognize such controls as the ListView and TreeView, you may take advantage of the new Self-Updating Object (SUO) architecture. To do so, you may either switch to using the new SUO objects. Or you may add the SUO API to your current objects. For more details, please see the section at the end of this appendix which covers the PFC 6.0 Release.
Empty, Placeholder, "Virtual" User Events
in which you are responsible for filling with the proper script.
Note
Take note throughout this document of any of these events which have thisindicator beside them. Again, you are responsible for providing the code for these events for your PFC application to function properly. Of all of the empty user events which exist, these five are very KEY and important, and therefore they are worth calling your attention to them upfront:
pfc_BeginTran Begin your database transaction
pfc_EndTran End your database transaction
Note
These two events control your database transactions. Therefore, they are the KEY to the success of your client/server application!
pfc_PreOpen Basically, this is the first script that executes (that you control)
In here you may:
- Turn on any Window Services
- Register the window with the Security Service
- Set your Help ID
- Disable the CloseQuery logic if appropriate
Since this event is triggered at the top of the Open event, you want to limit things done in here until after the Open event completes. That leads us to the next event
pfc_PostOpen This event is posted from the PFCs Open event, so it should execute after the window is actually open and is displayed.
In here you may perform longer-running processes such as:
- Of_SetTransObject( )s (if no tabs involved)
- Database retrievals
- Other long-running processes
- Things that can wait until this event executes
- Things that may need to close the opening window
pfc_Open Open your sheets from your frame here, and
Open another sheet, window or file from another sheet herePlease be sure to read up on these and other
empty user events in detail in the following section.
Tell
me more about everything in
pfc_w_master
Now that you have an overview of whats in pfc_w_master, lets cover each of pfc_w_masters Instance Variables, Functions and Key Events in detail. Well list them all here for your quick reference convenience. And then well take each category one at a time, outlining the particulars of each and every Instance Variable, Function and Key Event.
| Key | |
| è Instance Variable | |
| è Event with PFC script | |
| è Event with PFC script that you may want to extend | |
| è Event Placeholder, intended for you to add script to | |
| è Function | |
| è Protected: scope | |
| è Public: scope | |
| è PowerScript Native | |
| è New in PFC Release 5.0.02 | |
| Note |
è Breakpoint - Stop and take note! |
| è Self-explanatory <s> | |
![]()
any ia_HelpTypeID
boolean ib_CloseStatus
boolean ib_DisableCloseQuery
boolean ib_SaveStatus
5.0.02
u_dw idw_Active
n_cst_resize inv_Resize
n_cst_winsrv inv_Base
n_cst_winsrv_preference inv_Preference
powerobject ipo_PendingUpdates[ ]
![]()
string is_DBErrorMsg
5.0.02
Shared Variables
< None >
Structures
< None >
of_GetCloseStatus ( ) returns boolean
of_GetDWType ( datawindow adw_dw ) returns integer
of_GetSaveStatus ( ) returns boolean
5.0.02
of_SetBase ( boolean ab_switch ) returns integer
of_SetDBErrorMsg (string as_msg) returns integer
5.0.02
of_SetPreference ( boolean ab_switch ) returns integer
of_SetResize ( boolean ab_switch ) returns integer
of_UpdateChecks ( ) returns integer
External Functions
< None >
Close ( ) returns long
CloseQuery ( ) returns long
Pre-5.0.03
Move ( integer xpos, integer ypos ) returns long
Open ( ) returns long
pfc_AcceptText ( powerobject apo_control [ ], boolean ab_focusonerror ) returns integer
Pre-5.0.02
pfc_BeginTran ( ) returns integer
pfc_Close ( )
pfc_ControlGotFocus ( dragobject adrg_control )
pfc_DBError ( ) returns integer
5.0.02
pfc_Descendant ( ) returns boolean
pfc_EndTran ( integer ai_update_results ) returns integer
pfc_Help ( ) returns integer
pfc_MessageRouter ( string as_message ) returns integer
pfc_MicroHelp ( string as_microhelp )
pfc_New ( )
pfc_Open ( )
pfc_PageSetup ( ) returns integer
pfc_PostOpen ( )
pfc_PostUpdate ( powerobject apo_control [ ] ) returns integer
pfc_PreClose ( ) returns integer
pfc_PreOpen ( )
pfc_PreUpdate ( ) returns integer
pfc_Print ( ) returns integer
pfc_PrintImmediate ( ) returns integer
pfc_Save ( ) returns integer
pfc_SaveAs ( )
pfc_Update ( powerobject apo_control [ ] ) returns integer
pfc_UpdatesPending ( powerobject apo_control [ ] ) returns integer
Pre-5.0.03
pfc_Validation ( powerobject apo_control [ ] ) returns integer
Resize ( ) returns long
of_SetSheetManager (boolean ab_switch) returns integer
of_SetStatusBar (boolean ab_switch) returns integer
Activate ( ) returns long
Move ( integer xpos, integer ypos ) returns long
pfc_Cascade ( ) returns integer
pfc_Layer ( ) returns integer
pfc_MicroHelp ( string as_microhelp )
pfc_MinimizeAll ( ) returns integer
pfc_Open ( )
pfc_PostOpen ( )
pfc_PreOpen ( )
pfc_PreToolBar ( n_cst_toolbarattrib anv_toolbarattrib )
pfc_TileHorizontal ( ) returns integer
pfc_TileVertical ( ) returns integer
pfc_ToolBars ( ) returns integer
pfc_UndoArrange ( ) returns integer
Resize ( ) returns long
Activate ( ) returns long
pfc_ControlGotFocus ( dragobject adrg_control )
pfc_MicroHelp ( string as_microhelp )
pfc_PreOpen ( )
pfc_Apply ( )
pfc_Cancel ( )
pfc_Default ( )
pfc_PreOpen ( )
n_cst_AppManager Application Manager
n_cst_DWSrv_Linkage DataWindow Linkage Service
n_cst_WinSrv Basic Window Service
n_cst_WinSrv_Preference Window Preference Service
n_cst_Resize Window Resize Service
n_cst_WinSrv_SheetManager (Frame) Sheet Manager Service
n_cst_WinSrv_StatusBar (Frame) Status Bar Service
pfc_w_masters
Instance Variables
![]()
any ia_HelpTypeID
boolean ib_CloseStatus
boolean ib_DisableCloseQuery
boolean ib_SaveStatus
5.0.02
u_dw idw_Active
n_cst_resize inv_Resize
n_cst_winsrv inv_Base
n_cst_winsrv_preference inv_Preference
powerobject ipo_PendingUpdates[ ]
![]()
string is_DBErrorMsg
5.0.02
Shared Variables
< None >
Structures
< None >
| What is it? | What is it used for? | |||
| Help Type ID for window The ID of the keyword or topic to show for Help for this window |
Tells the ShowHelp function which keyword or topic to jump
to automatically when the user hits F1 for Help from this window. You need to set it in your window if you would like Help to navigate for that window.
|
|||
| Status - Closing? Are we in the middle of the closing process at this time? |
PFC sets this to TRUE at the top of the Outside of this window, you
may check this flag if you need to know if the user is in the process of closing via
|
|||
| Disable Close Query? Do we want to skip CloseQuery logic when the user closes window? |
If you set this to TRUE, the entire PFC It is helpful to set this boolean instance
variable to TRUE in cases where you know that the window should be read-only, and
therefore no updates should be allowed. This is because the PFC
|
|||
|
Status - Saving? Is the window in the process of saving data? |
PFC sets this to TRUE in the pfc_Save event, temporarily around the
Whenever ib_SaveStatus is TRUE, no modal windows should be allowed to open, because we are in the middle of a save transaction. If you are outside of the window, you may call If ib_SaveStatus is TRUE, PFC calls |
||
| Last Active DataWindow control reference | PFC keeps this reference variable pointing to the Last
active DataWindow control for you. Whenever you send a message
from your menu, the "Message Router" has a prioritized list of objects to
attempt to route the message to
One of the last objects in the Message Routers
list is to check if there is a valid last active DataWindow control reference- IF IsValid(idw_Active). If so, then the You may also use this reference variable to refer to the (current and/or last) active DataWindow control.
|
|||
| Window Resize Service instance | If/when you call Note: The Resize Service is not only a Window Service. It also services other objects, such as User Objects, Tab Controls, etc. Basically, it services any object that contains a control array of visual objects. Because the Resize Service is really a service to many different objects, not just a window, the Resize NVO is inherited from a native PowerBuilder NonVisualObject directly, rather than being inherited from n_cst_winsrv like the other two Window Services. Note: The Window Resize Service is grouped in the PFCWNSRV.PBL though because it is thought of as a Window Service. This is because the Window begins by re-routing a pfc_resize message to the Window Resize Service instance. In turn, the Window Resize knows which objects are registered with it, so it routes messages to all of them. They also may have their Resize Service turned on, and will therefore resize their controls. This resizing process trickles down nicely. Note: The instance of inv_Resize is automatically destroyed for you in PFCs Close event via
|
|||
| Basic Window Service instance | If/when you call But because all window services are descendants of n_cst_winsrv (and have n_cst_winsrv functions available to them), use this object only when you require basic window services only. This basically boils down to only when you need to center a window that is not already using the Preference service. Note: The instance of inv_Base
is automatically destroyed for you in PFCs Close event via
|
|||
| Window Preference Service instance | If/when you call The Window Preference Service is a big hit with the users. It is very helpful. There are however a few things to be aware about it Note Note Note Note: The instance of inv_Preference is automatically destroyed for you in PFCs Close event via
|
|||
| Array of DataWindow controls (and other objects) with Updates Pending | PFC populates this array with all of the DataWindow
controls which have updates pending in the If you have extra objects which have updates pending, you would extend the This array is then passed to the pfc_Validation, pfc_Update and pfc_PostUpdate events to validate, update and perform post-updates on each control in the array. |
|||
|
DBError (event) message Stored error message from a database update (from a DataWindows DBError event) which is waiting to be displayed until after the entire transaction has ended (rolled back) |
If an database error occurs during the
PFC calls You should too if you are doing any special update processing within If there is an error during the |
of_GetCloseStatus ( ) returns boolean
of_GetDWType ( datawindow adw_dw ) returns integer
of_GetSaveStatus ( ) returns boolean
5.0.02
of_SetBase ( boolean ab_switch ) returns integer
of_SetDBErrorMsg (string as_msg) returns integer
5.0.02
of_SetPreference ( boolean ab_switch ) returns integer
of_SetResize ( boolean ab_switch ) returns integer
of_UpdateChecks ( ) returns integer
External Functions
< None >
|
What is it? Arguments Return Values |
What does it do? When should I call it? |
|
| Status - Closing? Are we in the middle of the closing process at this time? Returns boolean: TRUE = Window is closing FALSE = Window is not closing |
Reports whether or not the window is in the process of
closing. This function simply returns the value of the
|
||
| What kind of DataWindow is this?
Desc of u_dw? + Returns integer: -1 = Error |
Indicates whether a DataWindow is a descendant of u_dw and whether or not it uses the
linkage service
|
||
| Status - Saving? Is the window in the process of saving data? Returns boolean: TRUE = Window is in the save process |
Reports whether or not the window is in the process of
saving, specifically whether you are in the This function simply returns the value of the
|
||
| Turn on/off Basic Window Services Argument boolean ab_switch: TRUE = Enable service Returns integer: 1 = Success |
Enables or disables n_cst_winsrv, which provides Basic Window Services. This function
simply creates or destroys an instance of n_cst_winsrv. If/when you call of_SetBase (TRUE) to turn on the Basic Window Service, an instance of Note: The instance of inv_Base is automatically destroyed for you in PFCs Close event via of_SetBase (FALSE)
Note
|
||
| Store the DBError Message to be displayed after
transaction has ended Argument string as_msg : Text of the DB Error message, for example a string containing information such as sqldbcode and sqlerrtext from u_dws DBError event Returns integer: 1 = Success |
Stores any DBError message that may have occurred during
the process of saving, specifically when it was in the This function simply stores
the DBError message in the
|
||
| Turn on/off Window Preference Service Argument boolean ab_switch: TRUE = Enable service Returns integer: 1 = Success |
Enables or disables
n_cst_winsrv_preference, which provides Window Preference Services. This function simply creates or destroys an instance of n_cst_winsrv_preference. If/when you call of_SetPreference (TRUE) to turn on the
Window Preference Service, an instance of Note: The instance of inv_Preference is automatically destroyed for you in PFCs Close event via of_SetPreference (FALSE)
|
||
| Turn on/off Window Resize Services Argument boolean ab_switch: TRUE = Enable service Returns integer: 1 = Success |
Enables or disables
n_cst_resize, which provides Window Resize services. This function simply creates or destroys an instance of n_cst_resize. If/when you call of_SetResize (TRUE) to turn on the window resize
service, an instance of Note: The instance of inv_Resize is automatically destroyed for you in PFCs Close event via of_SetResize (FALSE) Note The Please refer to
|
||
| Check for any validation errors or if there are any
unsaved changes pending Returns integer: 1 = Updates are pending and there are no validation errors |
Triggers the following events
|