From 7aaa5af2c24e83c66174254f5180c74337dca754 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Tue, 12 Jan 2010 18:36:29 +0000 Subject: [PATCH] Avoid accessing non existent dropdown item. Fixes issue #1597. --- source/tabletools.dfm | 8 -------- source/tabletools.pas | 7 ++++++- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/source/tabletools.dfm b/source/tabletools.dfm index d7a21221..a1146c0e 100644 --- a/source/tabletools.dfm +++ b/source/tabletools.dfm @@ -185,16 +185,8 @@ object frmTableTools: TfrmTableTools Style = csDropDownList Anchors = [akLeft, akTop, akRight] ItemHeight = 13 - ItemIndex = 0 TabOrder = 0 - Text = 'Check' OnChange = ValidateControls - Items.Strings = ( - 'Check' - 'Analyze' - 'Checksum' - 'Optimize' - 'Repair') end object chkQuick: TCheckBox Left = 81 diff --git a/source/tabletools.pas b/source/tabletools.pas index 033635f4..1e844024 100644 --- a/source/tabletools.pas +++ b/source/tabletools.pas @@ -238,6 +238,7 @@ end; procedure TfrmTableTools.FormShow(Sender: TObject); var DBNode, TableNode, FirstChecked: PVirtualNode; + idx: Integer; begin // When this form is displayed the second time, databases may be deleted or filtered. // Also, checked nodes must be unchecked and unchecked nodes may need to be checked. @@ -269,8 +270,12 @@ begin if Assigned(FirstChecked) then TreeObjects.ScrollIntoView(FirstChecked, True); // CHECKSUM available since MySQL 4.1.1 + idx := comboOperation.ItemIndex; + if idx = -1 then idx := 0; + comboOperation.Items.CommaText := 'Check,Analyze,Checksum,Optimize,Repair'; if Mainform.Connection.ServerVersionInt < 40101 then - comboOperation.Items[comboOperation.Items.IndexOf('Checksum')] := 'Checksum ('+STR_NOTSUPPORTED+')'; + comboOperation.Items.Text := StringReplace(comboOperation.Items.Text, 'Checksum', 'Checksum ('+STR_NOTSUPPORTED+')', [rfReplaceAll]); + comboOperation.ItemIndex := idx; comboOperation.OnChange(Sender); comboExportOutputType.OnChange(Sender);