![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TComboBox vs PStrings [D7, WinXP]
KIR@PRO © (2011-09-13 10:28:00)Приветствую всех. Подскажите пожалуйста как переделать TComboBox чтоб компонент работал не со своим списком TStrings
а с созданным отдельно TStrings и присоединенным к нему и другим таким же TComboBox через свойство...
На подобие этого:
s1:Tstrings;
...
ComboBox1.PComboStringList:=@s1;
ComboBox2.PComboStringList:=@s1;
необходимо это для экономии памяти т.к. необходимо чтоб много ComboBox'ов отображало один и тот же список но выбирать могли разные пункты....
Зарание благодарю за любую конструктивную помощь...
Dennis I. Komarov (2011-09-13 21:25:00) [21]Аминь...
DiamondShark (2011-09-13 18:35:00) [22]Не получится выигрыша ни в скорости, ни в памяти.
Посмотри исходник TComboBox. Его TStrings ничего не хранит, а для записи/чтения строк просто шлёт сообщения подлежащему виндовому контролу.
Так что как ни крути, а если ты используешь стандартный виндовый комбобокс, то у тебя всё равно рано или поздно всплывёт переписывание строк в контрол вызовами SendMessage.
Медвежонок Пятачок (2011-09-13 15:22:00) [23]сколько нужно проделать чтоб во все 80 ComboBox"а запихать новый TStrings...
Ну и скока?
Померяй.
Не на восьмидесяти, а на сотне комбобоксов.
И не с 400 строками, а с шестьюстами.
скока миллисекунд получится?
Медвежонок Пятачок (2011-09-13 15:19:00) [24]выигрыш не только в памяти!!! выигрышь в производительности...
Кто бы мог подумать......
Еще и в производительности выигрышь
Tstrings часто будут менятся представьте сколько нужно проделать чтоб во все 80 ComboBox"а запихать новый TStrings...
Зашибись.
А если он будет один, то его рендерить во всех 80 комбиках конечно же не надо.
Омлет (2011-09-13 15:03:00) [25]4 группы по 20 ComboBox'ов в которых 200-400 строк (причем, одних и тех же) - это, скорее всего, и есть ошибка проектирования бизнес-процесса и/или пользовательского интерфейса.
Для какой цели такая жуткая форма?
KIR@PRO (2011-09-13 14:47:00) [26]ну примерно 4 группы по 20 ComboBox'ов у каждой группы своий Tstrings
примерно по 200-400 строк каждый.... выигрыш не только в памяти!!! выигрышь в производительности... Tstrings часто будут менятся представьте сколько нужно проделать чтоб во все 80 ComboBox"а запихать новый TStrings...
2 Омлетесли человек не может сделать компонент не означает что он плохо проектирует....
Омлет (2011-09-13 14:36:00) [27]Задача бредовая. Скорее всего - ошибка проектирования.
Медвежонок Пятачок (2011-09-13 13:10:00) [28]Это сколько же надо иметь комбобоксов на форме, чтобы получить заметный выигрыш по памяти с общим TStrings?
KIR@PRO (2011-09-13 12:10:00) [29]эммм... поподробней можно пожайлуста ... может есть мысли как реализовать эту задачу другими споссобами, какими либо аналогами ComboBox?
DimaBr (2011-09-13 11:35:00) [30]Это попахивает Lookup-ом