1.4.35 |
- bBrowser
and bDataColumn
The
columns are destroyed
when the method bBrowser:Use() is called or
the bBrowser is destroyed.
- bBrowser
and cell input
Fixed
an error that occurs when pasting a value from
the clipboard into the cell edit control.
- bBrowser
and bKeyCommand
It
is checked after the execution of a bKeyCommand
now whether the ALT key was pressed. In this
case all WM_SYSCHAR events are removed from the
event queue. This is necessary because the hot
key of a menu could otherwise be executed.
- bBrowser
and DBServer with scope
Fixed
an error which could occur when a scope was defined
in a DBServer and the DBServer was skiped to
EoF. In this case the RecNo was not correct.
- bBrowser
and AdoServer:SetFilter()
Fixed
an error which could occur when a filter on bookmarks
was defined in an AdoServer and then a field
value was changed in a record.
- bArrayServer:FieldPut()
If
a numeric value with decimals was put into a
numeric field without decimals, then the decimals
were put in the field, too. This bug is fixed
now. The numeric value is converted with the
function Integer() into an integer now and then
put it into the field.
|
1.4.34 |
- bBrowser:PropertyPut(#ScrollThumbDragRefresh)
The value for the Property #ScrollThumbDragRefresh
was evaluated wrongly. At the value FALSE the
visible records was permanently updated at the
scrolling with the slider and at the value TRUE
only when the scroll process is ending. However,
the meaning of the values is defined as follows.
At TRUE the visible records are permanently updated
and at FALSE only when the scroll process is
ending. The values are evaluated correctly now.
- bCompoundValue
and rotated text
A
rotated text (Font:Rotation > 0) was not displayed
correctly from the class bCompoundValue.
- bDBServer:SuspendNotification()
According
to the documentation the call of the method bDBServer:SuspendNotification()
returns a numeric value. Instead the server object
is returned. The return value of the method was
changed now that it agrees with the documentation.
The same also applies to the method bDBServer:ResetNotification().
- bDSSelection
and ADS
The
ADS always works with the '.' as a decimal separator
in the function Str(). This is independent which
setting is defined in VO with the function SetDecimalSep.
For this reason the decimal separator is set
before and restored after evaluating the selection
(see method bDSSelection:Update()).
|
1.4.33 |
- bBrowser
and VO 2.7b
Solves
some issues with VO 2.7b.
|
1.4.32 |
- bBrowser:SetContextMenu()
If
one or more context menus were set with the
method bBrowser:SetContextMenu(), then these
were not destroyed when the bBrowser were destroyed.
This caused a memory leak.
|
1.4.31 |
- bBrowser:AutoRefreshTime
By a previous patch the AutoRefresh
functionality (bBrowser:AutoRefreshTime) was
not supported any more. This problem was solved
now so that the AutoRefresh functionality is
supported again.
- bBrowser
and NULL-Values in column footer
If a NULL value (0,
FALSE, NULL_DATE, ...) was assigned to a column footer (bDataColumn:Footer),
then this value was not displayed.
- bBrowser
and background color for column caption
and footer
The area for the column caption or footen
was drawn in the color gray till now if this
was not visible (see also bDataColumn:CaptionVisible
or bDataColumn:FooterVisible). Now, the background
color which is defined in the bViewStyle for
the column caption or footer is used. If no background
color is defined, then the area is drawn in the
color gray.
- bArrayServer:RecordPut()
Till now, an available sorting was
not updated at the call of the method bArrayServer:RecordPut().
This problem was solved now. If the sorting
shall not be updated, then the value FALSE
can be submitted in the new argument <lUpdateOrder>.
The value TRUE is used as default.
|
1.4.30 |
- bBrowser
and scrollbars
In Windows 2000 and Windows XP can
be displayed context menus for the scrollbars.
Till now, the menu items "Top" and "Bottom" were
not supported in these context menus. This
problem is solved now.
- bIcon
In VO 2.7a it could happen that the icons were not shown or suddenly
disappeared.
|
1.4.29 |
- bBrowser:IsCaptionClickable()
bBrowser:IsColumnMovable()
bBrowser:IsColumnResizable()
bBrowser:IsRowResizable()
The bBrowser has not invoked the
methods internally till now. The methods
were only for the programmer to be able to
determine the states. The bBrowser invokes
the methods internally now, too. It is therefore
possible to implement a new class inherits
from the bBrowser and to overwrite the methods
to
change
the behavior
of the
bBrowser.
- bDBServer:SuspendNotification()
A program crash occurred
in the method bDBServer:SuspendNotification() under certain circumstances.
- bArrayServer and DataFormat BDATAFORMAT_DBASE
A bArrayServer object can be created with a
data array in the argument <auData>. The data
array
contains
the data to the defined fields. If
for a field with the data type String the length
of the value from the data array is
greater than the defined field length then
the value is cut on the defined field length
now.
|
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.
|