Разрыв конфигурации сборки 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.

Я не могу понять, как создать воспроизводимый пример, который сломается на другой машине, так как я убежден, что именно некоторые настройки в моей конфигурации сборки вызывают такое поведение.

0 ответов

Другие вопросы по тегам