VOTools for Visual Objects  
and Vulcan.NET  

bBrowser => Patches => bBrowser 1.4 (Limited) => bBrowser 1.4 (Limited) Patch 1.4.27    

 bBrowser 1.4 (Limited) Patch 1.4.27
Download now
Date: 18-12-2003
File Size: 2.12 MB
VO-Versions: CA-Visual Objects 2.6
Description: The patch can be used for bBrowser 1.4 (Limited).
  • bBrowser:ResizeBuffer()
    Under certain circumstances the bBrowser crashed sporadically in the method bBrowser:ResizeBuffer(). This bug is solved now.

  • bDataColumn and numeric values
    Numeric values in a column are always drawn as string. To convert a numeric value into a string, the method bDataColumn:FieldSpec:Transform() is called. But this call creates a string with leading blanks. If such a value shall be shown with left alignment in the column, then the leading blanks are disturbing very much. Because of this all leading blanks are removed now.

  • bIcon:Size
    The strong typing was removed.

  • bCompoundValue + CRLF
    CRLF in bCompoundValue are supported correctly now.

  • bCompoundValue:GetValue()
    If for the argument <iValue> the value 1 was passed on then a NULL_OBJECT was returned instead of the first value.

  • bCompoundValue:DeleteValue()
    If for the argument <iValue> the value 1 was passed on then the first value wasn't deleted.
  • bBrowser and ClipperKeys
    The bBrowser supports the return key correctly now, if ClipperKeys are activated in its owner. Pressing the Return key was ignored till now if ClipperKeys were activated.

  • bBrowser:CurrentColumn
    If with the assign bBrowser:CurrentColumn the current column is set, then the cell edit is activated now at the setting bBrowser:AutoEdit #Permanent.

  • bBrowser:SkipToCell()
    The method supports the new argument <lAutoEdit>. The argument defined, whether at the setting bBrowser:AutoEdit #Permanent a cell edit shall be activated automatically. If the argument is not specified, then the value TRUE is used as default.

  • bBrowser:AutoEdit #Excel
    When pressing the return key, then the callback method CellDoubleClick() is called at the setting bBrowser:AutoEdit #Excel now. This behavior was already supported at the other settings of bBrowser:AutoEdit.

  • bBrowser:AutoEdit #Permanent
    At the setting bBrowser:AutoEdit #Permanent the possibility is supported now, to canceling the cell edit within the callback method CellEdit() and moving the table cursor on another cell.

  • bBrowser and cell edit
    If error messages were shown within the callback method CellEdit(), it could happen that the error message was displayed repeatedly.

  • bCompoundValue
    The position of a subordinate bCompoundValue wasn't relatively shown to the primary bCompoundValue.

  • bDBServer:SetSelectiveRelation()
    The support of the selective relation contained an bug if the controlling order was descending.
  • bBrowser and the own DBF format ADT from ADS
    The bBrowser had problems with the own DBF format ADT from ADS, if the database contained deleted records.
  • bBrowser and cell edit
    If a cell edit were accept with the RETURN key, then played a beep under certain circumstances.

    If a cell edit were accept with the TAB key, then under certain circumstances the callback method CellEdit() was called 2 times with the mode BEDIT_END.

    If due to an cell edit validation a standard error message were displayed by the bBrowser, then the caption of the error message was in German. This concerns only the bBrowser international.

  • bBrowser and vertical column values
    If for the column values a font with rotation (see also bFont:Rotation) were defined, then the column values were not drawn correctly.

  • bBrowser:GoTop()

    Before a record movement the data server sent no NotifyIntentToMove notification to the registered clients.

  • bBrowser and vertical column values
    If in the detail server of a selective relation no result existed, then a wrong value was returned.
  • Selective Relation without result
    If in the detail server no result were contained of a selective relation and then in the detail server the arrow up key were pressed, then the detail server was wrongly positioned.

  • Selective Relation and speed
    The speed of selective relations was improved with large data bases.
  • bBrowser and change column width with the mouse?
    With changing the column width with the mouse, in the Windows taskbar a empty window was always shown. This problem is now solved.

  • bBrowser and DBServer:OrderScope
    If in the DBServer a OrderScope was set and no records existed to the OrderScope, then an empty record was shown in the bBrowser.

  • bBrowser:Refresh()
    With bBrowser:SelectionMode #Simple could arise it, that after the call of bBrowser:Refresh() several records were selected.

  • bArrayServer:FieldPos(),

    If field names were specified as string, it could occur that these were not found, if not the exact spelling (upper and lower case) were considered. This problem is now solved.

  • bComboEdit
    Outside of the bBrowser the control bComboEdit did not work correctly, if in the opened choice dialog a value were accepted by pressing the ENTER key or by a mouse double click. In this case the choice dialog was opened automatically again.
  • bDataColumn:Init()
    If a column is created with the <symFieldMode> #Access or #AccessAssign and no field in the data server exists to the access, a HyperLabel is created for the column automatically now. Otherwise the HyperLabel is used for the field.

  • bBrowser and bGrid:BackgroundList
    If a bGrid:BackgroundList is defined in the bBrowser or in an opened column, this is shown in the grid now if the data server does not contain any records.

  • bBrowser:GridInEmptyArea
    If bBrowser:GridInEmptyArea is True, the color conditions of the bBrowser or a defined BackgroundList in the Grid of the bBrowser are used when drawing in the empty area of the bBrowser.

  • bBrowser:CaptionArea,

    The accesses has always returned an area whose width and height at 1 pixels were too large.

  • bArrayServer and Sorts
    During the processing of sorts (CreateOrder(), Append(), Delete(), OrderInfo()) errors in the sort expression and/or sort condition are intercepted now. The methods do not break any more now but create a error object.

  • bDBServer:SuspendNotification()

    The methods bDBServer:SuspendNotification() and bDBServer:ResetNotification() are called also in the servers of the relations now.
  • bBrowser and delete record
    Now it is scrolled automatically toward file beginning (SetDeleted(True)), if the last record is visible however not the first record.

  • bBrowser and delete records in detail server of a selective relation
    If in the detail server of a selective relation a record is deleted, now also the vertical scrollbar is updated so far as the deleted records are not visible (SetDeleted(True)).

  • bBrowser and filter
    If in the server a filter were active and the current record were no more contained in the filter by a change of field value, the bBrowser was not correctly updated. Additionally it could occur with following record movements that the bBrowser did not react any longer.
  • bBrowser and data server with 1 record
    Since the patch 1.4.17 no data were displayed if the server contained only 1 record.
  • bDBServer and RecordFilter
    If in the RecordFilter a RecNo were specified, which was larger than DBServer:LastRec then the bDBServer caused a program crash, if additionally an order was active.
  • bBrowser:EditClose()
    Sometimes with Windows XP it came with edit controls of the class ComboBox to program crashes.

  • bBrowser and ADS
    Improved support of the ADS RDD "ADSADT", if the record recycling is active (as deleted marked records are reused with an append).

  • bBrowser and ADS 6.11
    The RDD of ADS 6.11 does not support the access DBServer:OrderKeyNo any longer as performant as in previous versions. The speed problem (>200% more slowly) occurs, if SetDeleted() is on TRUE. The Browser uses the access DBServer:OrderKeyNo to position the slider in the vertical scrollbar. The speed problem affects thus directly to the speed of the bBrowser. The problem can be solved if around the call of DBServer:OrderKeyNo the following code is implemented.

    lDeletedOld := SetDeleted(False)

    iKeyNo := oServer:OrderKeyNo


    This workaround is now implemented in the bBrowser.

  • bArrayServer:Pack()
    An existing order was not correctly processed with the method bArrayServer:Pack().
  • bBrowser:TabKeyMode
    With the bBrowser:TabKeyMode
    - #MoveToEditableCell or
    - #MoveToSelectableCell
    the focus was not moved correctly by the bBrowser to the next and/or previous control.

  • bBrowser:TabKeyMode and bBrowser:AutoSkip
    With the bBrowser:TabKeyMode
    - #MoveToEditableCell oder
    - #MoveToSelectableCell
    in connection with bBrowser:AutoSkip=TRUE the focus was moved to the next control, if the table cursor were on the last column and the TAB key were pressed. This behavior is wrong. The focus may be moved only to the next control, if bBrowser:AutoSkip contains the value FALSE or the table cursor is on the last record and bBrowser:AutoAppend is not active.

    For all, which used this failure of the bBrowser, now the possibility exists to assign the symbol value #WhenFocusChange to bBrowser:AutoSkip. With this new value the bBrowser behaves as before.
  • bBrowser and vertikaler Scrollbalken
    With the bBrowser:RowMode #Absolute the thumb button of the vertical scrollbar is more optimally supported.

  • bBrowser:Recalculate()
    With ScrollbarMode #Auto the scrollbars was not always hidden, if all data within the visible area could be shown.
  • bBrowser and Seek
    With a Seek in the linked server the bBrowser positions the found record now into the center of the data area.

  • bBrowser and 1 visible record
    If in the bBrowser only one record were visible, it could come with vertical navigating to failure and/or program crashes.

  • bBrowser:EditClose()
    If during a cell input, the edit control were scrolled out the the visible area with the vertical scrollbar and afterwards another record were clicked with the mouse, the bBrowser flickered.
  • bArrayServer:Seek()
    bArrayServer:Seek() never found a record, if bArrayServer stood on EoF before.
  • bArrayServer:CreateOrder()
    The definition of a FOR condition caused an error.

  • bDataColumn and column caption
    If in the column no own caption is defined, the value from


    is used, if this is defined.
  • bBrowser:EditCreate()
    Now edit controls are supported also which are inherited from the classes
    - SingleLineEdit,
    - MultiLineEdit and
    - RichEdit

    The VerticalSpinner is now also correctly supported.

  • bBrowser:Cut(), bBrowser:Paste()
    Cut & Paste are supported during a cell edit.

  • bDBServer and RecordFilter
    With existing indexes the records were not always processed in the correct order.

    With the RecordFilterMode=DBRFM_EXCLUDE with bDBServer:Seek a record was never found.
  • bGUI Classes
    The DLL could not be dynamically loaded and unloaded afterwards again.

  • Right mouse button and context menu
    If the right mouse button were pressed on a negative position, the program crashes.
  • bItemList:Put()
    New method for setting an element.

  • bBrowser:TabKeyMode
    The TabKeyMode could cause in Windows 2000 programm crashes.

    If the bBrowser were the only control, the table cursor moved to the next/previous row even if the mode bBrowser:AutoSkip were not enabled.
  • bDataColumn:PropertyPut():
    New properties could not be set.

  • bDataColumn:PropertyDelete(),

    New property: #EditClass
    Name of the class (as Symbol) that is to be used for editing a cell value.
  • bBrowser and ALT-Taste:
    The ALT key was not correctly supported both in menus and in bKeyCommand.
  • bBrowser:CellEdit():
    With the call of self:oEdit:PerformValidations() the old and not the new value were examined, if no callback method CellEdit() were defined in the owner.
  • bBrowser:CellEdit():
    With the call of self:oEdit:PerformValidations() the old and not the new value were examined. With the call of self:oEdit:__Update() now the new value is examined.

  • bBrowser:PropertyDelete(),
    New property: #DefaultButonManage
    Logical value defines whether the default PushButton is to considered, if the bBrowser has the focus and the RETURN key is pressed.
  • bBrowser and Tastaturbefehle:
    In key commands (class bKeyCommand) the TAB key is supported now.

  • bBrowser:CellEdit():
    If in the owner of the bBrowser no callback method were defined, the edit control was not validated.

  • bArrayServer:Skip():
    Crash in the bArrayServer:RecordFilter, if the method bArrayServer:Skip() were called without argument.
  • bBrowser:NotifyDelete():
    If the lined data server in the bBrowser were a bArrayServer and the setting for deleted records were different than the setting of SetDeleted(), it could be that deleted records were not always removed from the bBrowser.
  • bBrowser and empty grid:
    If for the grid in the bBrowser the value NULL_OBJECT were set, then the program crash.
Copyright © 2003-2015 BEFO GmbH