Delphi Tips & Tricks softsale > Delphi Tips & Tricks      

< poprzednia rada następna rada >

Wymuszanie wyświetlania rozwijalnej listy w combobox

W aplikacjach, gdzie na formie umieszczone zostało wiele comboboxów zawierających elementy do wybierania, wymuszenie wyświetlania list rozwijalnych w tych comboxach już w momencie przejścia do danego comboxa na formie przyśpiesza pracę użytkownika aplikacji. Robi się to za pomocą wysłania komunikatu API Windows CB_SHOWDROPDOWN. Jak zwykle używamy w tym celu procedury Windows API SendMessage wymagającej podania 4 parametrów:

  • uchwyt Windows,
  • Message (komunikat, który ma być wysłany; w naszym przypadku CB_SHOWDROPDOWN),
  • wParam = (WPARAM) (BOOL) fShow (flaga określająca widoczność/niewidoczność),
  • lParam = 0 (nie używany, musi być ustawiony na zero).

W handlerze obsługi zdarzenia OnEnter należy umieścić następujący kod:

procedure TForm1.ComboBox1Enter(Sender: TObject);
begin
   SendMessage( ComboBox1.handle, CB_SHOWDROPDOWN,
                                Integer(True), 0);
end;

UWAGA: Powyższe nie działa, jeśli dla comboboxa wybierzemy CBS_SIMPLE jako wartość własności Style.


SOFTSALE - Oprogramowanie i Szkolenia
softsale@softsale.com.pl

03-565 Warszawa , ul. Borzymowska 43 lok. 301C
tel/fax:4084840,GSM:0607612428