eXpress++ Build 260 is available
Posted: Tue Oct 28, 2014 8:57 pm
If your subscription is up to date or has expired within the past 3 months then you are eligible for the latest build of eXpress++ (build 260). This build has been tested with the release version of Xbase++ 2.0 (build 554). Send me an email for download instructions.
Code: Select all
---------------- New to 1.9 (build 260) ----------
1330. Added new iVars to the DC_AdsStatement() class to report on the status
of the SQL cursor, such as whether or not it is dynamic or static.
New iVars: CursorOptions, isRead, isUpdate, isInsert, isDelete.
1329. DC_BitTest() now handles numbers up to 16777216 (24 bits).
1328. DC_Num2Bin() now handles numbers up to 24 bits. A number less than 256
will return a string of 8 characters, or else a number less than 65536
will return a string of 16 characters, otherwise a string of 24
characters will be returned.
1327. The TAGELEMENT clause of DCBROWSE may now be either a numeric array
index or a character string. It would be a character string when
browsing an array of objects. The string would contain the name of a
logical iVar.
1326. Added new function: DC_WtfEnable(). This is a Get-Set that is used to
enable or disable WTF commands in source code. Too often, WTF
commands are inadvertently left in source code and debugging info
appears on the screen after deploying an application.
Example: DC_WtfEnable({'DONNAY_TEST','Y'}) will cause WTF output to be
displayed only if there is a system environment variable named
DONNAY_TEST with a value of Y. The default is to always display WTF
output.
1325. Added new function: DC_DbGatherLock(). This is a Get-Set that is used
to post a code block to use as the default <bLock> when using
DC_DbGather().
1324. Added 2 new parameters to DC_DbGather(). <lCommit> will commit the
change to disk. <bLock> will override the default append routine with
user-defined code. This can be used to reuse deleted or blank records
instead of appending a new record.
1323. Added a new iVar to objects created by DC_DbRecord(). The iVar is a
logical named RECORD_DELETED. It contains a logical .TRUE. if the
record is Deleted() when DC_DbScatter() is used.
1322. Added a new Get-Set function: DC_XbpMenuShift(). This is used to post
a codeblock to call when the shift key is held down while clicking a
menu item. This is a handy feature to make it easy to give users the
ability to create their own shortcuts from any existing menu system.
See the example program in \exp19\samples\menu\menushortcuts.prg
1321. Fixed a bug in the DC_Dot() window, the WTF debug window (and other
eXpress++ built-in windows) that causes pushbuttons to change when the
DC_PushButtonStyle() function is called in the program.
1320. Fixed a bug in DC_MsgBox() and DCMSGBOX that can sometimes cause a
runtime error if the TIMEOUT occurs.
1319. Fixed a bug in DC_AutoRestoreWindow() that allows a window to be
restored in minimized or maximized state.
1318. Fixed a bug in DC_DbSkip() when using DC_SetScopeArray() and
<lDescending>.
1317. Added INCREMENT <nIncrement> clause to the @..DCSPINBUTTON command.
1316. Fixed a bug in DC_InspectThreads() that sometimes causes an error if
ThreadInfo() does not contain a pointer to the thread object.
1315. Added code to the DC_Resize() function as a workaround for an Xbase++
anomoly. Tabpages that have a tab angle greater than 0 did not display
the tab correctly after resizing.
1314. Fixed a bug in the dot-prompt REPLACE command in DCSTD.CH. Would not
allow aliased field. Ex: REPLACE CUSTOMER->name WITH 'Jones'
1313. Fixed a bug in DC_DbEval() that caused the REST clause of database
operations from the Dot Prompt to be ignored and caused operation to
start at the top of file. This affected the following dot prompt
commands: DELETE, AVERAGE, BLANK, COUNT, RECALL, REPLACE, SUM
1312. Added new parameter <lInclusive> to DC_DbGatherLog(). This allows the
array of aliases to be "inclusive" rather than the default which is
"exclusive." Also, the 4th parameter may be a multi-dimensional array
of Alias and field names instead of a single dimensional array of just
aliases. This allows logging only if specified fields have been
modified.
1311. Changed the default width of dialog buttons (Ok, Cancel, etc.) from 70
pixels to 90 pixels due to longer text of some languages.
1310. Added new SCROLLBARHEIGHT clause to the @..DCBROWSE command. The
default is 17 pixels. This affects both the vertical and horizontal
scrollbars.
1309. Fixed a bug in the FILTER clause of @..DCBROWSE. An error could occur if
the last element of the array was filtered.
1308. Added a 5th and 6th parameter to DC_AddButtonConfig(). This is the
bitmap object and font.
1307. Record tagging now works with an array of objects. Thanks to J.D.
1306. Implementation of improved JD tooltip system. A tooltip on a DCGET or
any other Xbp* part that has a method named :showBalloonTip" will
display the tooltip as a balloon tip. A manifest file must exist for
this to work. Thanks to Jack Duijf. See the sample program:
\exp19\samples\tooltip\balloon.prg.
1305. Added fixes to prevent runtime errors caused by invalid object state
and testing icons. Thanks to Jack Duijf.
1304. Added new Get-Set function: DC_BaseFont(). This is used to set the
base font type and size for some eXpress++ dialog elements. Default is
8.MS Sans Serif. This is equivalent to the old 8.Helv. Thanks to
Jack Duijf.
1303. Images no longer shift when mouseover is used on DCPUSHBUTTON "FANCY"
buttons. Thanks to Jack Duijf.
1302. Icons are now properly sized when used on DCPUSHBUTTONXP and
DCPUSHBUTTON. Thanks to Jack Duijf.
1301. A blank footer in a browse is now neatly grayed out instead of
suppressed. Thanks to Jack Duijf.
1300. Added additional key block for cell editing. Thanks to Jack Duijf.
1299. Added fix to prevent runtime errors when browsing array of objects if
a var does not exist that has been declared. Thanks to Jack Duijf.
1298. Fixed a bug in DC_Xml2ObjectTree() that does not close the XML file
handle after loading the file.
1297. Fixed a regression in DC_Color2Attr() that caused background colors
in @ DCPRINT SAY to not paint correctly when using the COLOR clause.
1296. Changed the ::destroy(), ::resume() and ::suspend() methods of
DC_DbNotify() to prevent runtime error in the event that the associated
database is closed.
1295. Fixed a problem with the COPY TO command of XDOT.EXE. It was not
respecting the FOR condition or showing the progress bar.
1294. Added a 4th parameter to DC_Array2CSV(). <lExcel> if .T. (default) will
put an equal = character before the quote " marks to insure that CSV
files imported to Excel will not convert date strings and numeric
strings but instead will leave them as string columns in Excel.
1293. Fixed some bugs in the DC_DbNotify() class. Fixed problem of a double
notification occurring occasionally. Also, an incorrect old value
reported if value was changed a 2nd time without moving the record
pointer. Additionally, a field name that was a superstring of a field
that is to be reported would also be reported if the value was changed.
1292. Added new function: DC_RegQueryAutoRestore(). This function displays a
dialog with 2 browses. (1) lists all items in the Windows section of
the registry that is defined by DC_AutoRestoreWindow(). (2) lists all
items in the Browse section of the registry that is defined by
DC_AutoRestoreBrowse(). Items can be tagged for deletion.
1291. Added new function: DC_RegDeleteValue(). This function deletes a value
in the registry.
1290. Added new function: DC_RegQueryBranch(). This function returns all the
values of a registry branch into an array. The array will contain the
value name plus the data.
1289. DC_BrowseAutoSeek() now automatically calculates the seek column when
seeking in an array. If the nColumn parameter is empty, then the array
will be seeked on the column associated with the current sort column.
1288. Added a TEXTONLY clause to DCPRINT ON. When used with the OUTFILE
clause, the output will be only in text format.
1287. Added support for DCGET objects to use CARGO 'CANCEL'. This means that
clicking on a DCGET or DCSAY..GET will ignore any validation on the
current object and will set focus to the Get object.
1286. Fixed a bug in the WHEN clause of DCMENUITEM that sometimes causes item
to be disabled when there is no WHEN clause.
1285. Fixed a syntax problem in DCPRINT.CH that was causing compiling errors
related to XCODEJOCK.CH. (wierd-o-rama)
1284. Fixed a problem with DC_AutoRestoreWindow() when using a custom code
block. The code block now receives a 3rd parameter - lRestoreDefaults.
This is alway a .F. unless the Restore Defaults button is clicked in
the lower left corner of the window.
1283. Added a new <lFreezeRow1> parameter to DC_Array2Excel() and
DC_WorkArea2Excel(). This causes the first row of the Excel sheet to
be bold font and locked from scrolling.
1282. Fixed a problem with DCSTATUSBARs aligned on the bottom of the window
not aligning correctly.
1281. Fixed a problem with the FIT clause showing extra space at the top of
the window.
1280. Fixed a problem in the Window Menu system that causes the error handler
to not be restored.
1279. Fixed a regression error in build 259 that is caused when using menus
that are not derived from DC_XbpMenu().
---------------- New to 1.9 (build 259) ----------
1278. Changed DC_GetBitmap() to allow <xBitmap> to also be a codeblock.
1277. Created a utility program that displays the values of all system
metrics on the current computer. Run .\samples\metrics\metrics.exe
1276. Added to command: DCPRINT SETFORMSIZE. This is used to change the form
size within a print job.
1275. Created 2 new functions: DC_InspectObject2Array() and
DC_InspectObject2File(). These functions will write the contents of an
object to an array or a file respectively.
1274. Added 2 new parameters to DC_WorkArea2Excel(). <cDateFormat> is used to
control the format of date fields. <aFieldEvals> is an array of code
blocks for formatting data. <cPassword> is a password to apply to the
new Excel file. Thanks to Terry Wolfe.
1273. Added a sample program that shows how to embed a video camera control
into an eXpress++ application using the VideoCapX ActiveX control.
See sample program: \exp19\samples\VideoCapX\Video.prg.
1272. Added a new MESSAGEBOXATTACHED clause to the DCMENUBAR command.
This option will create a messagebox that is attached to pull-down
menus. Allows better view of menu messages. See sample program:
\exp19\samples\menu\msgbox2.prg. Run Pbuild msgbox.xpj.
1271. Fixed a bug in the XDOT COPY TO command and DC_DbExport() that causes
the record pointer to always start at the top of the file.
1270. Added new function: DC_AdsGetSQLStatement(). This returns a string
with the SQL statement that was used to create a SQL cursor that has
been applied to a work area.
1269. Added 2 new ADS wrapper functions: AdsGetSQLStatementHandle() and
AdsGetSQLStatement().
1268. Added new defines to DCDIALOG.CH changing the look of the HEADER in the
browse.
1267. Added 2 new directives to DCDIALOG.CH to deal with a limitation of the
Xbase++ compiler when creating large var groups using DCVARGROUP. The
commands DCVARDEFINE and DCVARCREATE can be used in place of
DCVARGROUP. See .\samples\vars\vars2.prg.
1266. Fixed a bug in AX_SetScope(). Function did not always work correctly.
Replaced code with Alaska's sample code included with ADSDBE.
1265. Fixed a bug in DC_DbEval(). Would not work correctly if KEYSTAT was
OFF when running XDOT.EXE. This affected the following dot prompt
database manipulation commands (contained in DCSTD.CH): COUNT,
AVERAGE, SUM, BLANK, DELETE, RECALL, REPLACE.
1264. The function DC_CSV2WorkArea() now works correctly when lines of a CSV
file are terminated only with a Chr(10).
1263. The function DC_InspectThreads() will now display stack information and
workarea information for all threads. The Tracker system also dumps
stack and workarea information for all threads on a runtime error.
New functions:
1262. The BUSYMESSAGE option of DCGETOPTIONS now uses a progress bar instead
of DC_WaitOn(). Thanks to Michael Rudrich who contributed the code.
1261. The POPUP button of @ .. DCGET now handles icon size correctly by
resizing it to the size of the button. Thanks to Jack Duijf.
1260. Added support for the Microsoft XPS Document Writer (*.XPS) in the
DCPRINT preview system. New functions: DC_PrintPreviewXPSWriterOpt()
and DC_PrintPreviewXPSWriter(). Added new XPSWRITER clause to the
DCPRINT ON command.
1259. Added 2 new functions: DC_DbCloseArea() and DC_DbCloseAll(). These are
replacements for dbCloseArea() and dbCloseAll(). They prevent IDSC
errors caused when databases with relations set are not closed
properly.
1258. All eXpress++ DC_Xbp*() classes now support the ability to add new
dynamically created iVars to an object at runtime.
See the sample in samples\noivar\noivar.prg.
1257. Added noIvar support to DC_DbRecord(). This means that new Ivars can
be added on the fly to a record object.
See the sample in samples\noivar\noivar.prg.
1256. Fixed problem with SUBCLASS clause of @..DCACTIVEXCONTROL command.
1255. Fixed a bug in DC_PopFile() which caused it to truncate the returned
value if a file name was passed as the first parameter. Thanks to
Klaus Overhage.
1254. Added new function: DC_DbRecordEdit().
1253. Fixed a bug with @..DCPUSHBUTTON STATIC. If a DCPUSHBUTTON had a FANCY
clause, the application froze up when the caption was an icon. Thanks
to Jack Duijf.
1252. Removed some debugging that was left in the DCPRINT system source.