Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TComboBox vs PStrings [D7, WinXP]


Страницы:   1 2

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-ом


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо