Конференция "Начинающим" » DBLookupCombobox – всплывающая подсказка элементов списка
 
  • KBO78 (11.01.19 15:27) [0]
    Доброе время суток,
    Пользуюсь компонентом «DBLookupCombobox» необходимо сделать так, чтоб он позволял бы выводить всплывающую подсказку в выпадающем списке, если элемент списка не влазит по длине в сам список.
    просмотрел подобные темы, и понял, что с 2004г не нашли ничего лучше, как наследовать стандартный компонент «DBLookupCombobox», дописливать его самому и ловить сообщения "WM_CTLCOLORLISTBOX". или что-то появилось новенькое?

    Заранее спасибо за ответ
  • Leonid Troyanovsky © (12.01.19 10:35) [1]

    > KBO78   (11.01.19 15:27) 

    >  дописливать его самому и ловить сообщения "WM_CTLCOLORLISTBOX"

    Есть старинный способ вывода хинта в статусную строку примерно так:

    procedure TForm1.ApplicationEvents1Idle(Sender: TObject;
     var Done: Boolean); // TApplicationEvents
    var
     i: Longint;
    begin
      if ActiveControl is TComboBox then
        with TComboBox(ActiveControl) do
          begin
            if DroppedDown then
              begin
                i:= Perform(CB_GETCURSEL, 0, 0);
                if i >= 0 then
                  StatusBar1.SimpleText := Items[i]
                else
                  StatusBar1.SimpleText := '';
              end;
          end;
    end;

    --
    Regards, LVT.
  • KBO78 (12.01.19 14:51) [2]
    Да, это работает, но в "DBLookupCombobox" наполовину, с учетом "DBLookupCombobox", ваш код выглядит так

    if ActiveControl is TDBLookupComboBox then
        with TDBLookupComboBox(ActiveControl) do
          begin
              if ListVisible then
              begin
                i:= Perform(CB_GETCURSEL, 0, 0);
                if i >= 0 then
                begin
                  Label1.Caption := IBDataSet1.FieldByName('DESCRIPTION').AsString;
                  StatusBar1.Panels[0].Text := IBDataSet1.FieldByName('DESCRIPTION').AsString;
                end
                else
                  StatusBar1.Panels[0].Text := '';
              end;
          end;



    но в отличии от "Combobox" в "DBLookupCombobox", выделенный элемент в выпадающем списке не подсвечивается, и данный код работает только эсли водить мышкой по выпадшему списку с НАЖАТОЙ ее левой кнопкой
  • KBO78 (12.01.19 14:59) [3]
    А вот есть такой компонент "TDBLookupComboBoxEh" из библиотеки "EhLib" - у него все высвечивается и код работает как нужно.

    Ну это все равно немного не то, лучше все таки "hint"
 
Конференция "Начинающим" » DBLookupCombobox – всплывающая подсказка элементов списка
Есть новые Нет новых   [118626   +16][b:0][p:0.001]