Delphi Добавление элементов в ComboBox Speed

echo "Address1: ".$array_data["Address"]["Address2"]."<br>";
echo "City: ".$array_data["Address"]["City"] //wrong city in example :P

должны сделать трюк или, если есть больше адресов:

foreach($array_data as $key=>$address){
    $address2=$array_data["Address"]["Address2"];//if you need the assignment
    echo "Address1: ".$address2."<br>";
    echo "City: ".$array_data["Address"]["City"] //wrong city in example :P
}
8
задан YanetP1988 31 May 2018 в 21:18
поделиться

6 ответов

Извините, если бы я - неприятность, но я сомневаюсь, что TComboBox с 32 000 объектов является даже удаленно ''применимым''---, я сказал бы, что существует причина, почему это медленно: это никогда не предназначалось, чтобы сделать это :)

Была бы возможность отфильтровать данные и только загрузить подмножество? Чтобы быть более конкретным, в одном конкретном приложении базы данных, я продолжал работать, пользователь может искать человека. Мы позволяем пользователю ввести по крайней мере 3 или 4 символа имени и только затем начать возвращать результаты в поле списка. Это значительно увеличило удобство использования поисковой формы, также значительно ускорив целый процесс.

Вы смогли бы следовать за аналогичным подходом?

Или на совершенно другом взятии возможно, Вы могли смотреть на компонент VirtualTreeView---или для прямого использования, или для вдохновения.

17
ответ дан 5 December 2019 в 06:24
поделиться

Я соглашаюсь, что 32K объекты являются смешной суммой, чтобы иметь в поле комбинированного списка... Однако Вы могли бы попытаться добавить объекты к TStringList сначала и затем использовать комбинацию Begin/EndUpdate и AddStrings:

SL := TStringList.Create;
try
  // Add your items to the stringlist
  ComboBox.Items.BeginUpdate;
  try
    ComboBox.Items.AddStrings(YourStringList);
  finally
    ComboBox.Items.EndUpdate;
  end;
finally
  SL.Free;
end;

Компиляции кода, но я не протестировал его далее, чем это; я никогда не чувствовал потребность добавить больше чем несколько дюжин объектов к полю комбинированного списка или полю списка. Если еще объекты могли бы быть необходимы, чем это, я нахожу способ отфильтровать прежде, чем заполнить список, таким образом, существует меньше объектов.

Только из любопытства, как Вы ожидаете, что пользователь отсортирует это много объектов для принятия решения?

3
ответ дан 5 December 2019 в 06:24
поделиться

Это - я снова. Я добавляю 32 000 причин объектов, я должен. Это - одни из многих средств управления в моем приложении, которое имеет много объектов. У меня должно быть это много объектов. Это работает просто великолепно, ища вещи. Отлично на самом деле. Я просто пытаюсь оптимизировать вещи. Пользователи находят вещи очень хорошо, так как они находятся в определенном логическом порядке.

Все, что я имею, кажется до сих пор с, Присваиваются, и AddStrings - то, что они в конечном счете заканчивают в, Добавляют с вызовом SendMessage. Таким образом, я буду продолжать смотреть.

Спасибо за обратную связь.

1
ответ дан 5 December 2019 в 06:24
поделиться

возможно, cmb. Объекты. Присвойтесь (myStringList) поможет.

вот дикая идея: я не попробовал его, но Вы могли бы проверить, чтобы видеть, существует ли способ фактически загрузить поле комбинированного списка путем определения номера объектов и затем рисунка владельца. простите эту сумасшедшую идею, но я думаю, что услышал об этом являющемся доступным так или иначе. не важный: это - то, как это сделано в Palm OS..., где более быстрый способ загрузить поле комбинированного списка не состоит в том, чтобы загрузить все это... ;-)

Не ответ, но с какой стати Вы хотели бы 32 000 объектов в поле комбинированного списка? Это - ужасный способ хранить так много данных.

я соглашаюсь; это - плохая практика...

1
ответ дан 5 December 2019 в 06:24
поделиться

Возможно, можно использовать механизм базы данных в бэкенде и использовать данные осведомленный компонент. Затем вещи будут намного более более быстрыми и применимыми. Возможно, при попытке описать то, что делает Вы пытаетесь выполнить, мы поможем Вам далее. В любом случае Ваш дизайн UI, скажем, нечетен. И для этого, возможно, форумы Причала помогут Вам лучше.

0
ответ дан 5 December 2019 в 06:24
поделиться

Я реализую это по-другому. Сначала я удалил элемент управления combobox, взял элемент управления текстовым полем и назначил его автозаполнение для настраиваемого источника, где коллекция настраиваемых исходных строк составляет 32k элементов. Я получаю выбранное значение из нового запроса на проверку элементов управления.

Таким образом, он может заменить функциональность поля со списком. В основном около 32k элементов, которые люди не прокручивают, но продолжают вводить нажатия клавиш, и наш собственный источник автозаполнения улавливает их.

0
ответ дан 5 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: