1.4.27 |
- 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.
|
1.4.26 |
- 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.
|
1.4.25 |
- 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.
|
1.4.24 |
- 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()
bBrowser:GoBottom()
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.
|
1.4.23 |
- 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.
|
1.4.22 |
- 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(),
bArrayServer:FieldGet(),
bArrayServer:FieldPut()
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.
|
1.4.21 |
- 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,
bBrowser:DataArea,
bBrowser:DynamicDataArea,
bBrowser:FooterArea,
bBrowser:SelectorArea
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()
bDBServer:ResetNotification()
The methods bDBServer:SuspendNotification()
and bDBServer:ResetNotification() are called
also in the servers of the relations now.
|
1.4.20 |
- 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.
|
1.4.19 |
- bBrowser and data server with 1 record
Since the patch 1.4.17 no data were
displayed if the server contained only 1 record.
|
1.4.18 |
- 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.
|
1.4.17 |
- 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.
oServer:SuspendNotification()
lDeletedOld := SetDeleted(False)
oServer:Skip(0)
iKeyNo := oServer:OrderKeyNo
SetDeleted(lDeletedOld)
oServer:ResetNotification()
This workaround is now implemented in the bBrowser.
- bArrayServer:Pack()
An existing order was not correctly processed
with the method bArrayServer:Pack().
|
1.4.16 |
- 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.
|
1.4.15 |
- 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.
|
1.4.14 |
- 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.
|
1.4.13 |
- bArrayServer:Seek()
bArrayServer:Seek() never found a record,
if bArrayServer stood on EoF before.
|
1.4.12 |
- 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
DataServer:FieldSpec(...):HyperLabel:Caption
is used, if this is defined.
|
1.4.11 |
- 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.
|
1.4.10 |
- 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.
|
1.4.9 |
- 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.
|
1.4.8 |
- bDataColumn:PropertyPut():
New properties could not be set.
- bDataColumn:PropertyDelete(),
bDataColumn:PropertyGet(),
bDataColumn:PropertyPut():
New property: #EditClass
Name of the class (as Symbol) that is to be
used for editing a cell value.
|
1.4.6 |
- bBrowser and ALT-Taste:
The ALT key was not correctly supported
both in menus and in bKeyCommand.
|
1.4.5 |
- 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.
|
1.4.4 |
- 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(),
bBrowser:PropertyGet(),
bBrowser:PropertyPut():
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.
|
1.4.3 |
- 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.
|
1.4.2 |
- 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.
|
1.4.1 |
- bBrowser and empty grid:
If for the grid in the bBrowser the value NULL_OBJECT
were set, then the program crash.
|