Navigation:  Updates >

Update auf Version 1.5

Diese Seite drucken    Vorherige SeiteZurück zum Anfang des KapitelsNächste Seite

Neue Klassen

bCellToolTipEvent

bNameArray

Neue Methoden und Zugriffe

bArrayServer

Children

ClearOrderScope()

ClearRelation()

OrderBottomScope

OrderScope()

OrderTopScope

PropertyDelete()

PropertyGet()

PropertyPut()

RecordRestore()

RecordSave()

Relation()

SetRelation()

SetSelectiveRelation()

bBrowser

AdjustAutoWidthColumn()

AdjustCaptionHeight()

AdjustFooterHeight()

AutoCaptionHeight

AutoFooterHeight

AutoWidthColumn

CellToolTip()

ColumnVariableHeightCount

ColumnVariableHeightList

FirstRecNo

FormatColumns()

GetAutoWidthColumn()

GetColumnEditMode()

GetInfoHeight()

GetSelectorBackground()

GetSelectorColorSpec()

GetSelectorForeground()

GetSelectorStateBackground()

GetSelectorStateForeground()

GetVisiblePosFromEoF()

GetVisiblePosFromRecNo()

GetVisiblePosFromRowNo()

GoTo()

InDrag

InitRecordScope()

LastRecNo

LastVisibleRecNo

RecordRelease()

RemoveColumnAll()

SelectionCellCount

SelectorColorCondition

ServerType

SetInfoHeight()

SetSelectorBackground()

SetSelectorForeground()

ToolTipMode

VisibleRecCount

bCell

RecNo

bDataColumn

AutoEdit

CalculateHeightOfCaption

CalculateHeightOfFooter

CaptionPressed

FieldMode

FooterPressed

IsSuspendEmptyValues

ValueTransformList

WidthMax

WidthMin

bDBServer

Children

GoBottomBlock

GoTopBlock

PropertyDelete()

PropertyGet()

PropertyPut()

RecordRestore()

RecordSave()

ResetNotification()

SkipBlock

SuspendNotification()

bItemList

Put()

Änderungen an Methoden und Zugriffe

bArrayServer

Seek()

Neues Argument:

<lLast>

OrderInfo()

Neuer <iInfoType>:

DBOI_NAME

DBOI_SCOPEBOTTOM

DBOI_SCOPETOP

bBrowser

AutoSkip

Neuer unterstützer Modus:

#WhenFocusChange

Drag()

Neues Argument:

<iStayInterval>

GetInfo()

Neue unterstützte Info-Werte:

Text

Icon

Bitmap

bCompoundValue

PropertyPut(),
PropertyGet(),
PropertyDelete()

Neue Eigenschaften:

#BitmapStretch

#BitmapTransparentColor

#ColumnClass

#DataPointer

#DefaultButtonManage

#FooterPointer

#MouseWheelMode

#SelectorPointer

RowCountMode

Neuer unterstützer Modus:

#LastRec

SelectionMode

Neuer unterstützer Modus:

#Permanent

SetInfo()

Neue unterstützte Info-Werte:

Text

Icon

Bitmap

bCompoundValue

Use()

Neues Argument:

<auFormat>

ViewLogicAs

Neue Darstellungsart:

#Check

bCellDragEvent

DragMode

Neue unterstützte Modi:

BCDM_DRAGENTER

BCDM_DRAGLEAVE

bDataColumn

PropertyPut(),
PropertyGet(),
PropertyDelete()

Neue Eigenschaften:

#EditClass

SuspendEmptyValues

Unterstützung von Codeblöcken

 

ViewValueAs

Neue Darstellungsarten:

#Check

#PushButton

bViewStyle

Alignment

Neue Ausrichtungen:

BALIGN_TOP

BALIGN_BOTTOM

BALIGN_VCENTER

Neue Funktionen

bRGB()

Geänderte Beispielapplikationen

bSample - DragDrop.aef
Unterstützung von Drag&Drop innerhalb der Auswahlliste.

bSample - Edit.aef
Die folgenden Zugriffe wurden in das Beispielprogramm integriert:

bGrid:BackgroundList

bDataColumn:ValueTransformList

bSample – Images.aef
Optimierter Zugriff auf die Bitmaps. Die gelesenen Bitmaps werden gepuffert.

Sonstige Änderungen und Erweiterungen

bBrowser und das Verschieben von Spalten
Beim Verschieben einer Spalten mit der Maus wird die Spaltenbezeichnung der Spalte im gedrückten Zustand dargestellt (nur bei BGRID_CONVEX).

bBrowser und Spaltenbezeichnungen
Wenn eine Spaltenbezeichnung nicht vollständig angezeigt werden kann, dann werden Auslassungszeichen am Ende angezeigt.

bBrowser und Eingabe
Wenn eine Zelleingabe mit einem Mausdoppelklick oder durch Drücken der RETURN-Taste gestartet wird und das Eingabe-Control ist eine CheckBox, dann wird der Eingabewert automatisch negiert. Dies bedeutet, dass der Eingabewert automatsich von TRUE nach FALSE und von FALSE nach TRUE geändert wird.

bBrowser:EditCreate()
Es werden nun auch Eingabe-Controls unterstützt, die von den Klassen

SingleLineEdit,

MultiLineEdit und

RichEdit

abgeleitet sind.

bBrowser:Cut(), bBrowser:Paste()
Cut & Paste wird während einer Zelleneingabe unterstützt.

bBrowser und Bitmaps als Spaltenwerte
Die Unterstützung von Bitmaps wurde verbessert. Bitmaps werden nun transparent gezeichnet. Dies bedeutet, dass die Hintergrundfarben von Farbbedingungen und farbigen Grids beibehalten werden. Außerdem können Bitmaps gestreckt bzw. gestaucht werden (siehe auch bBrowser:PropertyPut()).

bBrowser und Mehrfachselektion
Die Mehrfachselektion (bBrowser:SelectionMode #Multiple) wurde für große Datenmengen optimiert. Bisher war es problematisch, wenn in Datenbanken mit vielen Datensätze alle Datensätze oder ein großer Bereich markiert wurden. Dieser Vorgang konnte sehr lange dauern. Dieses Problem ist nun behoben

bBrowser und Seek
Bei einem Seek im verknüpften Datenserver positioniert der bBrowser den gefundenen Datensatz nun in die Mitte des Datenbereichs.

bDataColumn:Init()
Wenn eine Spalte mit dem FieldMode #Access bzw. #AccessAssign erzeugt wird und zu dem Zugriff kein Feld im Datenserver existiert, wird nun automatisch ein HyperLabel für die Spalte erzeugt. Andernfalls wird das HyperLabel zu dem Feld verwendet.

bDataColumn und Spaltenbezeichnung
Wenn in der Spalte keine eigene Spaltenbezeichnung definiert ist, wird der Wert aus

DataServer:FieldSpec(...):HyperLabel:Caption

verwendet, sofern dieser definiert ist.

Selektive Relation und Geschwindigkeit
Die Geschwindigkeit von selektiven Relationen wurde bei größeren Datenbanken verbessert.

bBrowser und ADS
Verbesserte Unterstützung des ADS RDD's "ADSADT", wenn das Record-Recycling aktiv ist (als gelöscht markierte Datensätze werden bei einem Append wiederverwendet).

Fehlerkorrekturen

bBrowser und Spaltenbreite mit der Maus verändern
Beim Verändern der Spaltenbreite mit der Maus, wurde in der Windows-Taskleiste immer ein Fenster angezeigt. Dieses Problem ist nun behoben.

bBrowser:TabKeyMode
Beim bBrowser:TabKeyMode

#MoveToEditableCell oder

#MoveToSelectableCell

wurde der Fokus nicht korrekt vom bBrowser auf das nächste bzw. vorherige Control gesetzt.

bBrowser:TabKeyMode
Unter Windows 2000 führte der TabKeyMode unter bestimmten Umständen zu Programmabbrüchen.

bBrowser:TabKeyMode und bBrowser:AutoSkip
Beim bBrowser:TabKeyMode

#MoveToEditableCell oder

#MoveToSelectableCell

in Verbindung mit bBrowser:AutoSkip=TRUE wurde der Fokus an das nächste Control weitergeben, wenn der Tabellencursor auf der letzten Spalte war und die TAB-Taste gedrückt wurde. Dieses Verhalten ist falsch. Der Fokus darf nur an das nächste Control weitergegeben werden, wenn bBrowser:AutoSkip den Wert FALSE enthält oder aber der Tabellencursor auf dem letzten Datensatz steht und kein bBrowser:AutoAppend aktiv ist.

Für alle, die diese Fehlverhalten des bBrowser ausgenutzt haben, besteht nun die Möglichkeit dem Zugriff bBrowser:AutoSkip den Symbolwert #WhenFocusChange zuzuweisen. Mit diesem neuen Wert verhält sich der bBrowser wie bisher.

bBrowser, Mehrfachselektion und rechte Maustaste
Wenn im bBrowser die Mehrfachselektion eingeschaltet war und dann die rechte Maustaste gedrückt wurde, um ein Kontextmenü anzuzeigen, wurde die Zelle/Zeile unter der Maus nicht selektiert. Dieses Problem ist nun behoben.

bBrowser:SelectionRowCount
Der Zugriff bBrowser:SelectionRowCount gab den Wert 1 zurück, wenn keine Datensätze vorhanden waren.

bBrowser:Refresh()
Beim bBrowser:SelectionMode #Simple konnte es vorkommen, dass nach dem Aufruf von bBrowser:Refresh() mehrere Datensätze selektiert waren.

bBrowser:Recalculate()
Beim ScrollbarMode #Auto wurden die Scrollbalken nicht immer ausgeblendet, wenn alle Daten im sichtbaren Bereich angezeigt werden konnten.

bBrowser:CaptionArea,
bBrowser:DataArea,
bBrowser:DynamicDataArea,
bBrowser:FooterArea,
bBrowser:SelectorArea
Die Zugriffe haben immer einen Bereich zurückgegeben deren Breite und Höhe um 1 Pixel zu gross waren.

bBrowser:GridInEmptyArea
Wenn bBrowser:GridInEmptyArea den Wert TRUE enthält, dann werden nun beim Zeichnen des Grid im leeren Bereich die Farbbedingungen des bBrowser bzw. eine definierte BackgroundList im Grid des bBrowser berücksichtigt.

bBrowser und bGrid:BackgroundList
Wenn im bBrowser oder in einer geöffneten Datenspalte eine Background-Liste definiert ist, wird diese nun im Grid angezeigt, wenn der Datenserver keine Datensätze enthält.

bBrowser und Datensatz löschen
Es wird nun automatisch in Richtung Dateianfang gescrollt (bei SetDeleted(TRUE)), wenn der letzte Datensatz nicht aber der erste Datensatz sichtbar ist.

bBrowser und Löschen im Detail-Server einer selektiven Relation
Wenn im Detail-Server einer selektiven Relation ein Datensatz gelöscht wird, wird nun auch der vertikale Scrollbalken aktualisiert, sofern die gelöschten Datensätze nicht sichtbar sind (SetDeleted(TRUE)).

bBrowser und selektive Relation ohne Datensätze
Wenn in dem Detail-Server einer selektiven Relation keine Ergebnismenge enthalten war und im Detail-Server die Pfeil-Hoch-Taste gedrückt wurde, dann wurde der Detail-Server falsch positioniert.

bBrowser und DBServer:OrderScope
Wenn im DBServer ein OrderScope gesetzt war und zu diesem keine Datensätze existierten, wurde ein leerer Datensatz angezeigt.

bBrowser und Filter
Wenn im Datenserver ein Filter aktiv war und durch eine Feldänderung der aktuelle Datensatz nicht mehr im Filter enthalten war, wurde der bBrowser nicht korrekt aktualisiert. Zusätzlich konnte es bei anschließenden Satzbewegungen vorkommen, dass der bBrowser nicht mehr reagiert hat.

bBrowser und ADS 6.11
Das RDD vom ADS 6.11 unterstützt den Access DBServer:OrderKeyNo nicht mehr so performant wie in den Vorgängerversionen. Der Geschwindigkeitseinbruch (>200%) wirkt sich dann aus, wenn SetDeleted() auf TRUE ist. Der bBrowser verwendet den Zugriff DBServer:OrderKeyNo um unter anderem den Slider im vertikalen Scrollbalken zu positionieren. Das Geschwindigkeitsproblem wirkt sich somit direkt auf die Arbeitsgeschwindigkeit des bBrowser aus. Das Problem kann behoben werden wenn um den Aufruf von DBServer:OrderKeyNo der folgende Code implementiert wird.

oServer:SuspendNotification()

lDeletedOld := SetDeleted(FALSE)

oServer:Skip(0)

 

iKeyNo := oServer:OrderKeyNo

 

SetDeleted(lDeletedOld)

oServer:ResetNotification()

Dieser Workaround ist im bBrowser implementiert.

bDataColumn:ViewValueAs=#Abstract
Bisher wurde die Callback-Methode DrawValue() im Owner nicht aufgerufen, wenn der Spaltenwert leer war (unabhängig von der Einstellung bDataColumn:SuspendEmptyValue). Nun wird die Callback-Methode auch aufgerufen, wenn der Spaltenwert leer ist und bDataColumn:SuspendEmptyValue den Wert FALSE enthält.

bComboEdit
Außerhalb des bBrowser arbeitete das Control bComboEdit nicht korrekt, wenn im geöffneten Auswahldialog ein Wert mit RETURN oder einem Mausdoppelklick übernommen wurde. In diesem Fall wurde der Auswahldialog wieder automatisch geöffnet.

bDBServer:SuspendNotification()
bDBServer:ResetNotification()
Die Methoden werden nun ebenfalls in den Servern der Relationen aufgerufen.

bArrayServer:FieldPos(),
bArrayServer:FieldGet(),
bArrayServer:FieldPut()
Wenn Feldnamen als String spezifiziert wurden, konnte es vorkommen, dass diese nicht gefunden wurden, wenn nicht der exakte Feldname (Groß-/Kleinschreibung) beachtet wurde. Dieses Problem ist nun behoben.

bArrayServer:CreateOrder()
Die Angabe einer FOR-Condition verursachte einen Fehler.

bArrayServer und Sortierungen
Bei der Verarbeitung von Sortierungen (CreateOrder(), Append(), Delete(), OrderInfo()) werden nun Fehler im Sortierausdruck und/oder Sortierbedingung abgefangen. Die Methoden stürzen nun nicht mehr ab, sondern erzeugen ein Fehlerobjekt.

bArrayServer:Pack()
Eine vorhandene Sortierung wurde bei der Methode bArrayServer:Pack() nicht korrekt verarbeitet.

 


Page url: http://www.YOURSERVER.com/index.html?update_version_1_5.htm