eXpress++ Build 260 is available

Announcements about new features or events.
Post Reply
Message
Author
User avatar
rdonnay
Site Admin
Posts: 4729
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

eXpress++ Build 260 is available

#1 Post by rdonnay »

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.


The eXpress train is coming - and it has more cars.

Post Reply