Icon View Incident Report

Serious Serious
Reported By: Steven Williamson
Reported On: 6/22/2015
For: Version 4.41 Build 1
# 4183 Showing Dialog in OnValidate Event Handler Causes Issues with Grid Cell Repainting in Delphi XE8

We are migrating our application from Delphi XE7 to Delphi XE8 and have encountered a bug in the DBISAM version 441b1dbisamvclstdrsdelphiwin32xe8.

We are able to replicate the bug via DBISAM sample code.

Steps to produce the bug.

Open cdcollector.data.pas
Select AlbumsTable
Right Click then select Fields Editor…
From list of Fields, select Name
Create a new event for OnValidate
Add the following line to TCDCollectorDataModule.AlbumsTableNameValidate procedure:

procedure TCDCollectorDataModule.AlbumsTableNameValidate(Sender: TField);
begin
ShowMessage('Test');
end;

Run application
Select Name field and edit existing data. E.g. add “2” to the end of Californication
Tab to the next field
Test message will be displayed
The data in the Name field is now “automatically” changed to a different name.

This bug changes the value of a field when a table field has OnValidate events. It seems only happening when the form is opened for the first time.


Comments Comments
Caused by some changes in the way that the base TDataSet buffer handling interacts with multi-row controls in XE8, combined with changes applied to the next-gen compiler TField validation code, but not the old pointer-based TField validation code.


Resolution Resolution
Fixed Problem on 6/23/2015 in version 4.41 build 2


Products Affected Products Affected
DBISAM Additional Software and Utilities
DBISAM VCL Client-Server
DBISAM VCL Client-Server with Source
DBISAM VCL Standard
DBISAM VCL Standard with Source
DBISAM VCL Trial

Image