I have found a problem in XE3 that I am not sure is of my own making, i made a small app. The whole code being
unit xe3testrelease;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.DBGrids, Data.DB,
IBODataset, IB_Components, IB_Access;
type
TForm1 = class(TForm)
IBOTransaction1: TIBOTransaction;
IBODatabaseMain: TIBODatabase;
IBOQuery1: TIBOQuery;
DataSourceQuery: TDataSource;
IBOTransactionQuery: TIBOTransaction;
DBGrid1: TDBGrid;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
=========================================
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 509
ClientWidth = 905
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object DBGrid1: TDBGrid
Left = 40
Top = 128
Width = 817
Height = 353
DataSource = DataSourceQuery
Options = [dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgMultiSelect, dgTitleClick, dgTitleHotTrack]
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'Tahoma'
TitleFont.Style = []
end
object IBOTransaction1: TIBOTransaction
IB_Connection = IBODatabaseMain
Isolation = tiCommitted
Left = 272
Top = 16
end
object IBODatabaseMain: TIBODatabase
CacheStatementHandles = False
LoginCaption = 'MASTER COMPANY DATABASE'
LoginPrompt = True
SQLDialect = 3
DatabaseName = 'DANTMFG_1_1'
Params.Strings = (
'USER NAME=SYSDBA'
'PATH=D:\data\OCEAN01.fdb')
Isolation = tiCommitted
DriverName = ''
Left = 54
Top = 16
SavedPassword = '.JuMbLe.01.432B0639073E0E4B49'
end
object IBOQuery1: TIBOQuery
Active = True
DatabaseName = 'DANTMFG_1_1'
IB_Connection = IBODatabaseMain
IB_Transaction = IBOTransactionQuery
PreparedEdits = True
PreparedInserts = False
ReadOnly = True
RecordCountAccurate = True
SQL.Strings = (
'select * from part')
FieldOptions = []
Left = 48
Top = 72
end
object DataSourceQuery: TDataSource
DataSet = IBOQuery1
Left = 152
Top = 72
end
object IBOTransactionQuery: TIBOTransaction
IB_Connection = IBODatabaseMain
ReadOnly = True
Isolation = tiCommitted
Left = 272
Top = 72
end
end
I set both grid options dgmultiselect and dgrowselect to true.
If i compile the project using debug, the grid shows a complete blue line for each selected line and allows multiple selected lines highlighted in blue...This works.
But if I build using the "Release" build, the program acts very strangely , where the select only outlines the row in blue, and the multiselect only returns one line as the selected row count.. Obviously something in the "Release" build is different has broken.
I have checked all the paths until i am blue in the face but i cannot see whats happening.
All the paths in both Release and Debug look the same, Can anyone give me a clue as to where i might look.
If i build a few of my clients applications they all break in strange ways if compiled in XE3 using the Release build.
I cant see how to create a reproduce-able example that will break on another machine as I am convinced it is some setting in my Build configuration that is causing this behavior.