Форум: "Начинающим";
Текущий архив: 2009.09.13;
Скачать: [xml.tar.bz2];
ВнизМожно ли назначить ListBox.Items без копирования ? Найти похожие ветки
← →
b/@. © (2009-07-09 12:07) [0]Добрый день.
Занимаюсь оптимизацией модуля, и возник вот такой вопрос...
Припустим у нас есть некий глобальный справочник такого вида
январь
февраль
март
...
это может быть любой упорядоченый список строковых значений, список филиалов, подписка журнала мурзилка или подобное, и этот список грузиться в начале работы программы вspisok: TStringList;
.
И есть несколько диалоговых окон, в котором из этого списка нужно чтото выбрать и вернуть индекс выбора пользователю.
При этом в этом диалоговом окне при назначении ListBox.Items этого списка - получается как-бы две копии одного и того же списка.
Внимание вопрос:
Можно ли каким-то образом назначить ListBox.Items список строк, чтобы при этом не происходило создание двух экземпляров списка ?
← →
Anatoly Podgoretsky © (2009-07-09 12:37) [1]> b/@. (09.07.2009 12:07:00) [0]
Можно, но вероятно, что потом будешь бороться с невалидными ссылками.
← →
Palladin © (2009-07-09 12:51) [2]TListBox.Style:=lbVirtual;
← →
b/@. © (2009-07-09 14:34) [3]
> Palladin © (09.07.09 12:51) [2]
> TListBox.Style:=lbVirtual;
Можно и так - но хотелось бы единый механизм как для ListBox так и для ComboBox ?
> Anatoly Podgoretsky © (09.07.09 12:37) [1]
> Можно, но вероятно, что потом будешь бороться с невалидными ссылками.
А как ?
Пробовал делать
Items.Free();
Items := spisok;
Но вываливается AV при этом - наверное из-за того что пытается выполниться SetItems у уже освобожденного класса.
Впринципе можно сделать обёртку и перенести FItems в паблик - но так делать хочеться в последнюю очередь... может как то иначе можно заставить думать ListBox, что нужно обращаться не к своему списку а к моему ?
← →
sniknik © (2009-07-09 15:11) [4]> хотелось бы единый механизм как для ListBox так и для ComboBox ?
это уже сделано для баз, данные вынесены в отдельные рекордсеты, а визуальные компоненты только их отображают.
изучай.
← →
И. Павел (2009-07-09 15:13) [5]
> И есть несколько диалоговых окон, в котором из этого списка
> нужно чтото выбрать и вернуть индекс выбора пользователю.
>
Можно при вызове диалогового окна менять Parent у ListBox на это окно. Правда, координаты, align и др. тоже придется перенастраивать.
← →
b/@. © (2009-07-09 15:57) [6]
> sniknik © (09.07.09 15:11) [4]
> это уже сделано для баз, данные вынесены в отдельные рекордсеты, а визуальные компоненты только их отображают.изучай.
Спасибо. Посмотрю.
Просто была мысль - для "списочных" контролов c выбором, таких как ListBox, ComboBox, RadioGroup, CheckListBox и т.п. сделать возможность внешнего источника строк, чтобы не дублировать по десять раз...
← →
Loginov Dmitry © (2009-07-09 20:56) [7]
> При этом в этом диалоговом окне при назначении ListBox.Items
> этого списка - получается как-бы две копии одного и того
> же списка.
>
> Внимание вопрос:
> Можно ли каким-то образом назначить ListBox.Items список
> строк, чтобы при этом не происходило создание двух экземпляров
> списка ?
К чему такие усложнения? Неужели памяти перестало хватать? Или при копировании программа виснет?
Тогда - база данных!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.09.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c