-
-
Это попахивает Lookup-ом
-
эммм... поподробней можно пожайлуста ... может есть мысли как реализовать эту задачу другими споссобами, какими либо аналогами ComboBox?
-
Это сколько же надо иметь комбобоксов на форме, чтобы получить заметный выигрыш по памяти с общим TStrings?
-
Задача бредовая. Скорее всего - ошибка проектирования.
-
ну примерно 4 группы по 20 ComboBox'ов у каждой группы своий Tstrings
примерно по 200-400 строк каждый.... выигрыш не только в памяти!!! выигрышь в производительности... Tstrings часто будут менятся представьте сколько нужно проделать чтоб во все 80 ComboBox"а запихать новый TStrings...
2Омлет если человек не может сделать компонент не означает что он плохо проектирует....
-
4 группы по 20 ComboBox'ов в которых 200-400 строк (причем, одних и тех же) - это, скорее всего, и есть ошибка проектирования бизнес-процесса и/или пользовательского интерфейса.
Для какой цели такая жуткая форма?
-
выигрыш не только в памяти!!! выигрышь в производительности...
Кто бы мог подумать......
Еще и в производительности выигрышь
Tstrings часто будут менятся представьте сколько нужно проделать чтоб во все 80 ComboBox"а запихать новый TStrings...
Зашибись.
А если он будет один, то его рендерить во всех 80 комбиках конечно же не надо.
-
сколько нужно проделать чтоб во все 80 ComboBox"а запихать новый TStrings...
Ну и скока?
Померяй.
Не на восьмидесяти, а на сотне комбобоксов.
И не с 400 строками, а с шестьюстами.
скока миллисекунд получится?
-
Не получится выигрыша ни в скорости, ни в памяти.
Посмотри исходник TComboBox. Его TStrings ничего не хранит, а для записи/чтения строк просто шлёт сообщения подлежащему виндовому контролу.
Так что как ни крути, а если ты используешь стандартный виндовый комбобокс, то у тебя всё равно рано или поздно всплывёт переписывание строк в контрол вызовами SendMessage.