Разрыв конфигурации сборки XE3 Grid RowSelect при использовании сборки "Release"
Я обнаружил проблему в XE3, которая, я не уверен, принадлежит мне самому, я сделал небольшое приложение. Весь код
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
конец
Я установил оба параметра сетки dgmultiselect и dgrowselect в значение true.
Если я компилирую проект с помощью отладки, сетка показывает полную синюю линию для каждой выбранной строки и позволяет множеству выбранных строк, выделенных синим цветом... Это работает.
Но если я строю с использованием сборки "Release", программа действует очень странно, когда выбор выделяет только строку синим цветом, а множественный выбор возвращает только одну строку в качестве счетчика выбранных строк. Очевидно, что-то в сборке "Release" другой сломался.
Я проверил все пути, пока я не посинел в лицо, но я не могу видеть, что происходит.
Все пути в Release и Debug выглядят одинаково. Может ли кто-нибудь подсказать мне, где я мог бы искать.
Если я собираю несколько своих клиентских приложений, они все ломаются странным образом, если скомпилированы в XE3 с использованием Release Release.
Я не могу понять, как создать воспроизводимый пример, который сломается на другой машине, так как я убежден, что именно некоторые настройки в моей конфигурации сборки вызывают такое поведение.