2015-01-23 3 views
1

Я хочу добавить элементы списка снизу, и когда я добавлю больше первого прокрутки в списке. Таким образом, обратное добавление элементов обычно в список.Можно ли добавить listboxitems из нижней части списка в Delphi XE7?

Кто-нибудь знает, как это сделать?

+0

Если вы правильно поняли, что хотите, вы должны добавить автоматическую прокрутку в окно списка, чтобы последний элемент всегда был видимым? Если это так после объявления последнего элемента, просто перейдите и выберите его. Это должно прокрутить представление вниз. – SilverWarior

+0

@SilverWarior no, его не об автоматической прокрутке. Я хочу знать, как добавлять элементы снизу вверх, а не сверху. – Remi

+0

Итак, вы хотите, чтобы первый элемент находился на дне, второй над ним и так далее? – SilverWarior

ответ

1

Используйте методы TStrings Insert или InsertObject с индексом 0:

ListBox1.Items.Insert(0,'New Item'); 
+0

Но не забудьте проверить пустой список, чтобы добавить первый, например: IF ListBox1.Items.Count = 0 THEN ListBox1.Items.Add ('1st item') ELSE ListBox1.Items.Insert (0, «Новый элемент - наверху»); так как я не думаю, что вы можете ВСТАВИТЬ в пустой список (исправьте меня, если я ошибаюсь) – HeartWare

+1

Я думаю, что этот вопрос спрашивает, как вставить элемент в первую позицию, но как на самом деле перевернуть окно списка (так что первый добавленный элемент появится в нижней части списка). – TLama

+0

@HeartWare Нет проблем с вставкой в ​​'0' для пустого списка. –

0

TListBox, вероятно неправильное место, чтобы начать с этого. Вместо этого используйте TScrollBox. Добавьте свои предметы в качестве детей. Каждый раз, когда вы добавляете элемент, пересчитывайте Position.Y каждого элемента в зависимости от высоты элементов после (ниже).

(Переосмысление): на самом деле это возможно с помощью TListBox, если снова после каждой вставки вы пересчитываете позиции и вызываете ScrollBy.