Use SendMessage function with CB_GETDROPPEDSTATE message. If Result is true, then the list box of ComboBox is dropped down. You may send this message every second by using Timer component.
procedure TForm1.Timer1Timer(Sender: TObject); begin if SendMessage(ComboBox1.Handle,CB_GETDROPPEDSTATE,0,0)=1 then Caption:='ComboBox is opened' else Caption:='ComboBox is closed'; end;