-
Похожий контент
-
От Morfi
Ребята, как правильно настроить или реализовать поиск в TCombobox (данные которого связаны через livebinding c БД) при помощи TSearchBox?
-
От Alex Bozhko
На форму кладём TTabControl с двумя табами. На одном из них помещаем ComboBox.
В процедуре формируем item'ы. Примерно так:
procedure TForm1.FormCombo(aCombo: TComboBox); var Item: TListBoxItem; i: integer; begin aCombo.BeginUpdate; aCombo.Items.Clear; for I := 0 to 2 do begin Item := TListBoxItem.Create(nil); Item.Text := 'Item '+IntToStr(I); Item.StyleLookup:= 'listboxitemstyle'; Item.Parent := aCombo; end; aCombo.EndUpdate; end; Вызываем при создании формы:
procedure TForm1.FormCreate(Sender: TObject); begin FormCombo(ComboBox1); ComboBox1.ItemIndex:= 0; end; и пересоздаем список item'ов после переключения табов.
procedure TForm1.TabControl1Change(Sender: TObject); begin if TabControl1.TabIndex= 0 then begin FormCombo(ComboBox1); ComboBox1.ItemIndex:= 0; end; end; Естественно, устанавливаем активный item, после того как их список сформирован.
В XE7 всё работает как часы.
В XE8 - артефакт. После переключения табов активный Item - нулевой, но ComboBox не отображает его значение. Визуально это выглядит так, будто ItemIndex = -1.
Проекты для XE7 и XE8 прикрепил.
https://yadi.sk/d/4FGvgF-ti5dWz
-
От PFC
Есть класс:
class TMyObjectInt : public TObject { private: int Value; public: __fastcall TMyObjectInt (int _Value); __fastcall ~TMyObjectInt(); }; Есть ComboBox:
for (int i = 1; i <= 10; i++) cbxItems->Items->AddObject(IntToStr(i), new TMyObjectInt(i)); Почему при вызове ->Clear() не вызываются деструкторы для TObject'ов? Казалось бы базовый TObject замечательно для этого подходит, даже деструктор у него виртуальным объявлен.
Я могу написать свою функцию очистки, но это потенциально приводит к ошибкам, особенно если я отдаю указатель на ComboBox за пределы своей формы.
Кстати, так же ведут себя и многие другие контролы, да и в VCL было так же.
-
От Nix0N
Не отображаются кастомные item's при разворачивании списка TComboBox. Нет отображения конкретно в выпадающем списке, в самом TComboBox всё ок. Пробовал перерисовку во время события onPopup, создание на различных родителях и т.д. - не помогло. Подскажите в чем может быть дело ? Спасибо.
Чистый проект прилагается: RAD Studio XE6
CustomComboBox.zip
-
-
Последние посетители 0 пользователей онлайн
Ни одного зарегистрированного пользователя не просматривает данную страницу
Столкнулся с такой проблемой:
Есть форма с TComboBox. Стиль форме (один из тех, который поставляется из коробки) задаю в run-time:
Необходимо, чтобы TComboBox отображал items c bitmap. Заполняю TComboBox.ListBox так же в run-time (TListBoxItem.StyleLookup := 'listboxitemleftdetail'):
TComboBox.DropDownKind выставляю в "Custom".
Вроде как всё готово. Но получается вот такая картина.
Создаю и отображаю форму, bitmap в TCombobox отображен:

Раскрываю список, bitmaps так же отображаются:

Но, как только выбираю один из items, происходит следующее:

выбранный item не отображается, вообще!
Долго ли, мало ли копался в исходниках TCombobox...
В общем нашел некоторое решение данной проблемы. На событие TComboBox.OnClosePopup повесил код:
Результат, выбранный item отображается в TCombobox:

Теперь вопрос: Так и должно отрабатывать? Или что-то делаю не так?! Если что-то делаю не так, то как надо делать?
Поделиться сообщением
Ссылка на сообщение