он медленный и плохо себя ведет с #13 и #10 так что правильный вопрос ровно обратный, если есть работающий TList<T> (начиная с XE или возможно 2010) - зачем вообще нужен TStringList ? Иногда нужен, но если нет конкретного обоснования в конкретном месте - то не нужен
Для добавления в TListBox.
и только? ну разве что, хотя есть просто строки и есть TStringBuilder
Вернее, значения там как TStringList лежат.
можно и так, но ведь есть TStrings.AddStrings ? так что даже тут не всегда нужно
Ну там еще всякий сахарок типа LoadFromFile. Ну и главное: он чуть менее чем везде в RTL, VCL и т.п.
Вот я туда массив и передаю.
угу, вот из-за этого сахарка он и тормозит 😃
Правильно выбираем коллекции под задачу. :)
Хотя в Strings наверняка такие же внутренности, как и у TList<>.
Задача, чтобы пользователь хотел "убить" разработчика, который решил вывести ему для чтения 1 млн строк в ListBox ))
Это что. У нас как-то персонаж для вывода скроллирующегося по горизонтали графика на вебе создавал канвас размером 10005000 на 500.
Strings - достаточно абстрактный класс в TListBox он скорее всего будет отправлять сообщения в Windows "дайте мне заголовок элемента номер 10" и ждать ответа, а уж насколько быстро это внутри SendMessage и недрах Windows отработает - тут уже от Дельфи не зависит Заодно подумайте про TStringGrid - там есть Columns[i] и Rows[i] - и они оба TStrings Если вы думаете что "на той стороне" каждого - TStringList, то это будет означать что все ячейки хранятся дважды 😃
у нас когда-то делали расписание событий как сплошное TCollection с линейным поиском потом начали обвешивать разными фенечками, вроде шаблонных расписаний каждого дня и т.д. кончилось это вложенными линейными поисками по цепочке коллекций... ...и по TBitmap на каждый столбец, чтобы это все можно было хотя бы прокручивать 😃 ...потом и этого не хватило и очередную фишку вставили особо извращенным способом: в обработчике OnPaint каждой ячейки формировался отдельный SQL-запрос и отправлялся на сервер... Сервер это даже как-то выдерживал...
это было просто... не знаю... Как будто третий глаз открылся, и ты увидел Иные Миры.
Ой ... запрос в onpaint это прямо эталон
При этом никого не удивляет отрисовка в линуксе кде это на таких вот запросах и построено 😂
Значит кде не использовать, ок😊
я раза три перепроверил, ну НЕ МОЖЕТ такого же быть. Но реальность была безжалостна, именно на каждой ячейке и при каждой отрисовке (даже если там пиксель в уголке прокрасить)
Обсуждают сегодня