What's the word for a set of objects: DataWindows, DataStores, or
DataWindowChilds? If there is a word, I don't know it. Objects don't have any
relationship in the PowerBuilder object hierarchy, so that doesn't help.Let's
call them DataObjects...oops, that's taken! Lacking any other word, let's
stipulate that the term DataWidgets refers to these various DataWindow-ish
types.
Many native PB functions work for all kinds of DataWidgets. SetItem() applies
to DataWindows, DataWindowChilds, and DataStores, for example; so do the
GetItemX() functions, such as GetItemString() and GetItemNumber(). It's nice
that these functions operate identically for all DataWidget types. If I know
how to call SelectRow() for one, I can call it for the others.
Which brings up the problem addres... (more)
A typical PowerBuilder application has a few zillion MessageBox() calls. This
article explains how you can roll your own MessageBox() function, replacing
the native PowerBuilder MB() function with your code.
Why would you want to write your own MB() function? The general reason is to
give you a "hook" where you can write code to modify the native Windows MB()
behavior. Let's face it, the ... (more)
It's an aesthetic thing. When you click on a grid DataWindow label and change
an attribute, it acquires what are formally termed UGBs - Ugly Grid Borders.
They appear between the labels in the grid header. The vertical lines are
thin or thick. Inconsistency! Thick borders! Yuck! Figure 1 illustrates the
problem.
There are thick borders between the Nickname and Last Name labels and between... (more)
Roland Smith's PBSearch utility is the tool to turn to when you need to find
a string in your PowerBuilder application. For example, if you have an error
message from a bug report, it takes PBSearch only a few seconds to find all
the instances of that message. Similarly, if you want to see usage examples
for a given function, PBSearch will quickly find and show you the places
where that ... (more)
Overloading allows two or more functions to have the same name and return
type, if their signature is different. The function signature is defined by
its number and types of arguments. When you call an overloaded function,
PowerBuilder decides which version of the function to call based on the
function signature. This can be exploited to determine an object's type at
runtime. This articl... (more)