Problem with ComboBox selection

I'm trying to find a solution to an irritating VCL bug introduced by
BCB6. To demonstrate the bug:

  1.Drop a TComboBox onto a form.
  2.Populate it with several items (the numbers 1 to 8 will do).
  3.Set the style to csDropDownList

  Execute the form and drop down the list using the mouse. Now use
the *keyboard* to select one of the items. Close the drop down list
by clicking on the edit box *not the dropped down menu*. You will
find that the combobox is not displaying the selected item. If OTOH
you debug the dialog you will find that the combobox /has/ accepted
the selection (ie;ItemIndex will be correct).

When investigating this be aware that adding the following in the
TComboBox::OnChange handler fixes the problem:

  ShowMessage( ComboBox1->Items->Strings[ ComboBox1->ItemIndex ] );

The basic problem is that the ComboBox is drawing itself correctly.

I am actually trying to resolve this for TDriveComboBox but I'm
finding it impossible. My initial attempt was the following code:

  AnsiString newDrive=UpperCase( edtDirectoryPath->Text[ 1 ] );

  // Force it to be something it isn't so that it will change when we
  //   correct it.
  DriveComboBox1->ItemIndex=-1;//Drive=newDrive[ 1 ];

  for( int index=0;
       index<DriveComboBox1->Items->Count;
       ++index )
  {
    AnsiString driveInfo=DriveComboBox1->Items->
      Strings[ index ].SubString( 1, 1 ).UpperCase();

    if( driveInfo==newDrive )
    { // Correct the combobox.
      DriveComboBox1->ItemIndex=index;
      break;
    }
  }

But this has no effect.

Can anyone suggest another approach that would get round this
problem? A lot of keyboard users rely in this to choose a drive and
while the choice /works/ it's confusing not to have the combobox
display the correct selection.

Andrue Cope
[Bicester, UK]

Team Thai Kingdom