Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2013, 13:28   #1
Dr. MefistO
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 25
По умолчанию ListView OnData - тормозит форма

Только вчера разобрался с виртуальным режимом ListView. Действительно, он позволяет грузить бооольшой объем элементов на себя. Но, есть и проблемы.

Кнопки, вкладки формы, на которой находится список, перестают менять свое визуальное состояние, хотя свойства, типа Enable устанавливаются нормально.

Т.е., пускай, пока у меня пустой список, кнопка находится в Enable := True состоянии. После того, как число элементов списка изменилось (а у меня это объемы по ~20 000 строк) я устанавливаю Enabled := False.
Кнопки перестают менять свое состояние, сколько я ни навожу на них мышкой. Т.е. оно выглядит как Enabled все равно.
А вкладки формы, при изменении ее размеров, вообще пропадают.

Есть ли вообще нормальный компонент (желательно Free), который бы позволял хранить ооогромное количество строк, и обязательно имел колонки?
Если нету такого, то подскажите, как быстро грузить в ListView строки указанного выше объема? BeginUpdate..EndUpdate я использую. Но скорость все равно не достаточно быстрая (хотя и быстрее обычного режима).
Dr. MefistO вне форума Ответить с цитированием
Старый 21.02.2013, 14:07   #2
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Ничего общего между свойствами ListView и другими элементами не существует, кроме его обработчиков. Посмотрите внимательно на место определения доступности кнопок или Action, назначенных для кнопок. Скорее всего упустили проверку или неверно определяете размер загруженных элементов.
ReportCube вне форума Ответить с цитированием
Старый 21.02.2013, 14:21   #3
Dr. MefistO
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 25
По умолчанию

Не-не. Свойства работают. Не работают визуально эти свойства.
Вот скрин до загруженного списка:


Вот скрин после (плюс растянул форму):


Как видим, пропадают вкладки (кода вообще по ним нет никакого). И кнопка, хоть и свойство Enabled установлено на False, все равно будто бы доступна. Но при нажатии ничего не происходит. Она и не нажимается (так ведь и должно быть при Enabled). Но мышкой водить над ней бесполезно - она не подсвечивается.
Dr. MefistO вне форума Ответить с цитированием
Старый 21.02.2013, 14:26   #4
Dr. MefistO
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 25
По умолчанию

Но вкладки появляются если в то место клацнуть.
Dr. MefistO вне форума Ответить с цитированием
Старый 21.02.2013, 14:26   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Гадание на кофейной гуще. Без кода не будет и ответа. Согласен с ReportCube, дело не в ListView. Да, и 20000 записей зачем? Как с ними работать, попробуй все пролистай только.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.02.2013, 14:29   #6
Dr. MefistO
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 25
По умолчанию

Опять 25: "Ты их только пролистай", "Да нафиг оно надо" и т.д. И ничего по делу.
Код тут: http://code.google.com/p/tim2view/source/browse/
Ембаркадера XE3.

Ссылка на тестовый файл для скана: http://rghost.ru/43960473

Последний раз редактировалось Dr. MefistO; 21.02.2013 в 14:31.
Dr. MefistO вне форума Ответить с цитированием
Старый 21.02.2013, 14:50   #7
Dr. MefistO
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 25
По умолчанию

Включил Optimization - работает нормально. Бред.
Dr. MefistO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перетащить элемент ListView в другой ListView? Paul Hindenburg Компоненты Delphi 5 26.01.2013 11:35
Тормозит glebast Помощь студентам 10 27.04.2012 21:48
ПЕрвая форма, кликая по кнопке, другая форма Nadej C++ Builder 0 02.10.2011 17:58
[C# + WPF] ListView. Узнать выделена ли строка в нём. ListView.View == GridView. Casper-SC WPF, UWP, WinRT, XAML 2 12.08.2010 19:04