1.5.18 |
- bBrowser
and bDataColumn
The already existing columns are destroyed
at the call of the method bBrowser:Use() now.
The columns also are destroyed if the bBrowser
is destroyed.
- bBrowser:Resize()
The
bBrowser was not always redrawn correctly,
if the variable row height was enabled.
- bBrowser
and variable row height
Fix
a fault for the auto calculation of the row
height.
- bBrowser
and ToolTips
With
the ToolTipMode #Column could occur that empty
tool tips were shown. This problem is fixed
now.
- bBrowser:RecordSave()
The
method has not saved the EoF and BoF status.
- bBrowser:RecordRestore()
The
EoF status was not restored correctly for a
SQL Data Server.
|
1.5.17 |
- bBrowser:GetDefaultFont()
The new method creates an object of
the class Font and returns it. The font object
defines the standard font which is used in the
bBrowser. NOTE
!!!
With every call of the method a new font object is created.
- bBrowser:AutoRefresh()
and SQL
If
bBrowser:ServerType contains the value #SQL and
a bBrowser:AutoRefresh() is executed, then the
record pointer of the data server is moved on
the before active record again now.
- bBrowser
and MouseButtonDown()
If
the left mouse button is pressed on a column
caption or a column footer then not the event
WM_NCLBUTTONDOWN is sent any more but the event
WM_LBUTTONDOWN. This results in that the method
MouseButtonDown() is called in the bBrowser now.
The same applies also for the other mouse buttons.
- bBrowser
and MouseButtonDoubleClick()
If
the left mouse button is double clicked on a
column caption or a column footer then not the
event WM_NCLBUTTONDBLCLK is sent any more but
the event WM_LBUTTONDBLCLK . This results in
that the method MouseButtonDoubleClick() is called
in the bBrowser now. The same applies also for
the other mouse buttons.
- bBrowser
and DBServer:EoF
Solves
a problem at which the access DBServer:EoF returns
the value FALSE although the record pointer of
the DBServer was on EoF.
- bDataColumn
and alignment of column caption
If
for the column values an alignment was defined
then this was not used in the column caption
as far as no alignment was defined for the column
captions. The same applies to the alignment of
column foot also.
- 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.5.16 |
- 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.
- bBrowser
and ADS DBF-Format ADT
The
bBrowser had problems with the DBF format ADT
of the ADS Server, if records were deleted.
- bDataColumn:SetContextMenu()
If
one or more context menus were defined with the
method bDataColumn:SetContextMenu(), then these
were not destroyed when destroying the bDataColumn.
- bCompoundValue
and rotated text
A
rotated text (Font:Rotation > 0) was not displayed
correctly from the class bCompoundValue.
- bComboEdit
If
the choice dialog is opened, the bComboEdit tries
to position this below the control. If the area
below is too small, then it is moved above the
control. The used algorithm did not consider
the task bar of Windows, till now.
- 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().
- bArrayServer:SetSelectiveRelation()
If
no records existed in the child server of a relation,
then the record pointer of the server was moved
to the last record under circumstances.
|
1.5.15 |
- bBrowser
and VO 2.7b
Solves some issues with VO 2.7b.
|
1.5.14 |
- 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.5.13 |
- 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.
|
1.5.12 |
- 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.
- bBrowser:SelectionSet()
If the method bBrowser:SelectionSet() was invoked as below, then the
bBrowser was not redrawn.
oBrowser:SelectionSet(#All)
This
problem was solved now.
- bBrowser
and SQLSelect
The class SQLSelect does not always
determine the right EoF status when only record
is available. This problem was corrected by
a workaround in the bBrowser now.
- 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.5.11 |
- 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.5.10 |
- 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.
- bBrowser:Font()
If the font was changed by invoking the method bBrowser:Font(), the height
of the column captions was not recalculated.
- 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.5.9 |
- bBrowser:GridInEmptyArea
and Color Condition
With the patch bBrowser 1.5.8 the following
error has crept in:
If the access bBrowser:GridInEmptyArea was set
to TRUE and additional a color condition was
defined in the bBrowser, then a crash occured
if the table cursor was scrolled to the last
column.
|
1.5.8 |
- bBrowser,
SplitWindow and TAB key
The TAB key is also supported in the bBrowser
now if the bBrowser is in a SplitWindow.
- Variable
Row Height and Font Condition
Font conditions (bFontCondition) in the bBrowser
or bDataColumn were not considered, if the variable
row height (bBrowser:EnableRowHeightVariable())
was enabled.
|
1.5.7 |
- bBrowser:Refresh()
It could occur after calling the method bBrowser:Refresh
that some records were displayed twice.
- bBrowser
and mouse click
A mouse click into an empty browser could cause
an crash under certain circumstances. This bug
is solved now.
- bBrowser:ResizeBuffer()
Under certain circumstances the bBrowser crashed
sporadically in the method bBrowser:ResizeBuffer().
This bug is solved now.
- bBrowser
and variable row height
If for a column with the ValType "C"
the variable row height (bDataColumn:HeightVariable)
was activated, then the correct height was calculated,
but the cell value wasn't wrapped on the calculated
height.
- 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: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.5.6 |
- bDataColumn:FieldMode
The new access returns the FieldMode that was
specified in the argument <symFieldMode>
in the method bDataColumn:Init().
- bBrowser
and different mouse pointers
With the method bBrowser:PropertyPut() different
mouse pointers can be defined in the bBrowser
for the following areas:
- Data
- Column Footer
- Selector
To define a mouse pointer for an area, one of
the following constants must be used:
- #DataPointer
- #FooterPointer
- #SelectorPointer
The following code fragment defines a mouse
pointer for the data area:
oBrowser:PropertyPut(#DataPointer,
Pointer{POINTERCROSSHAIRS})
- bBrowser:RecordRelease()
With the new method bBrowser:RecordRelease()
a record can be released that was saved with
the method bBrowser:RecordSave() before.
- bBrowser:ServerType
The new access bBrowser:ServerType defines the
type of the data server that is linked with
the bBrowser. The bBrowser optimizes the access
to the data server depending on the server type.
- bBrowser:InitRecordScope()
The new method bBrowser:InitRecordScope() determines
the record number of the first, the last and
the EoF record of the linked data server.
- bBrowser:RowCountMode
The access supports the new mode #LastRec now.
- bBrowser
and AutoRefresh
The AutoRefresh behavior is supported also for
SQL based data servers now. In the method bBrowser:AutoRefresh
a method is invoked for SQL based data server
with that the data are determined from the SQL
Server once more. The name of this method can
be defined in the bBrowser with the Property
#SQLRequeryMethod. In the method bBrowser:Use()
the property is set automatically if it isn't
defined yet:
- If the server is an instance of class SQLSelect:
#Execute
- If the server is an instance of class ADORecordSet
or ADOServer:
#Requery
- bArrayServer:OrderInfo()
The method supports the following constants
now:
- DBOI_KEYSINCLUDED
- DBOI_SETCODEBLOCK
For the following constants defined NULL values
are returned:
- DBOI_CUSTOM (False)
- DBOI_FILEHANDLE (NULL_PTR)
- DBOI_FULLPATH (NULL_STRING)
- DBOI_HPLOCKING (False)
- DBOI_INDEXEXT (NULL_STRING)
- DBOI_INDEXNAME (NULL_STRING)
- DBOI_LOCKOFFSET (0)
- DBOI_UNIQUE (False)
- bDBServer:SetSelectiveRelation()
The support of the selective relation contained
an bug if the controlling order was descending.
- bDBServer
and RecordFilter
The deleted records were not ignored in the
Record Filter, if SetDeleted() returned TRUE.
|
1.5.5 |
- bBrowser
and info texts
If the bBrowser was resized, then the size of
the visible information text wasn't always adjusted.
- 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: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.
- bBrowser
and multiple selection
If several records were marked in a block, then
the correct record numbers were not returned
with the methods bBrowser:SelectionFirstRow()
and bBrowser:SelectionNextRow(). This problem
always occurred when because of the setting
of SetDeleted() the deleted records were not
visible.
- bBrowser:SelectionCellCount
The access bBrowser:SelectionCellCount did not
returned the correct number of selected cells.
- bBrowser:SelectionRowCount
The access bBrowser:SelectionRowCount did not
returned the correct number of selected rows.
- bBrowser
and drag & drop
If a bBrowser was both client and server for
drag & drop, then the drag & drop mode
was activated automatically, if with the mouse
a column was moved or the width of a column
was changed.
- 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.
|
1.5.4 |
- 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 and Multiple Selection
The bBrowser didn't process the multiple selection
correctly if two differently long blocks were
arranged directly besides each other.
- bBrowser:AutoWidthColumn
The width of the bBrowser:AutoWidthColumn wasn't
calculated correctly if it was defined before
the call of the method bBrowser:Use().
- bCompoundValue
The position of a subordinate bCompoundValue
wasn't relatively shown to the primary bCompoundValue.
- bArrayServer and Scopes
Under certain circumstances the bArrayServer
had problems with Scopes. This led to the fact
that the record result of the activated scope
was not correct.
|
1.5.3 |
- bBrowser:CurrentRow
The accesses bBrowser:CurrentRow returned no
correct values in certain situations.
- bBrowser:ToolTipMode
With the bBrowser:ToolTipMode #Column no tooltip
was shown, if the mouse pointer were moved from
the column data into the column caption.
- bDataColumn:ToolTipText
With the new access bDataColumn:ToolTipText
a Tooltip for a column can be defined.
If no ToolTipText is defined,
1. it is examined whether a HyperLabel is set
in the column. If it is, the Description from
this HyperLabel is used.
2. it is examined whether a FieldSpec with HyperLabel
is set in the column. If it is, the Description
from this HyperLabel is used.
3. it is examined whether the column is linked
with a field in a data server. If it is, the
Description from DataServer:FieldHyperLabel()
is used.
- bBrowser:AutoRefresh
If for bBrowser:AutoRefreshTime a value >0
were set and with the vertical scrollbar the
data were scrolled in the bBrowser, then after
bBrowser:AutoRefreshTime the bBrowser jumped
back to the current record, if by another program
in the same database a record was appended or
deleted. This behavior is now repaired. The
bBrowser does not jump back any longer to the
current record, but keeps the visible records
further in its view.
- bBrowser:GetColumnEditMode()
If the sequence of the opened columns (bBrowser:ColumnOpenList)
did not correspond to the sequence of the supported
columns (bBrowser:ColumnList), then the method
bBrowser:GetColumnEditMode() returned an invalid
EditMode.
- bBrowser and Multiple Selection
The multiple selection did not work correctly,
if the server were related to another server.
- 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.
- bArrayServer:OrderKeyCount()
The method bArrayServer:OrderKeyCount() returned
an invalid value, if for an order a scope were
set.
- bArrayServer and Scope
If in the bArrayServer a scope were set, for
that no result existed, nevertheless in the
bBrowser one record was displayed
|
1.5.1 |
- bBrowser and cell edit
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 concerned 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:GoTo()
bBrowser:GoTop()
bBrowser:GoBottom()
Before a record movement the data server sent
no NotifyIntentToMove notification to the registered
clients.
|