XPerformer, формально согласен, но при использовании DBGridEh он работает посредником между нормальным датасетом (интерфейсом к БД) и, собственно, гридом и обладает интерфейсом для прямого доступа к данным в памяти.
» Вопросы по Ehlib
landy
Цитата:
именно поэтому не надо трогать исходный датасет, а позиционироваться через MemTableEh, как показано ниже
deyatel1974
>> MemTableEh.RecordsView.MemTableData.RecordsList
это как-то уж очень замысловато...
Почему вы не позиционируетесь в гриде как обычно
for nRow := 0 to Selection.Rows.Count - 1 do begin
MemTableEh.Bookmark := Selection.Rows.Items[nRow];
должно сработать и после изменения порядка сортировки
Цитата:
использовании DBGridEh он работает посредником между нормальным датасетом
именно поэтому не надо трогать исходный датасет, а позиционироваться через MemTableEh, как показано ниже
deyatel1974
>> MemTableEh.RecordsView.MemTableData.RecordsList
это как-то уж очень замысловато...
Почему вы не позиционируетесь в гриде как обычно
for nRow := 0 to Selection.Rows.Count - 1 do begin
MemTableEh.Bookmark := Selection.Rows.Items[nRow];
должно сработать и после изменения порядка сортировки
XPerformer спасибо твой вариант рабочий но мне хотелось использовать самый прямой интерфейс. хотя для MemTableEh разницы наверное не будет.
Цитата:
но мне хотелось использовать самый прямой интерфейс
зачем? кроме запутанного кода и ошибок, это ничего не дает
XPerformer
Цитата:
Возможны проблемы, если в процессе бега по селшен изменяются поля сортировки. Я для избегания этого собираю Id веделенных записей датасета грида, а потом спокойно их редактирую. В этом случае порядок сортировки не имеет значения.
Цитата:
должно сработать и после изменения порядка сортировки
Возможны проблемы, если в процессе бега по селшен изменяются поля сортировки. Я для избегания этого собираю Id веделенных записей датасета грида, а потом спокойно их редактирую. В этом случае порядок сортировки не имеет значения.
deyatel1974, MemTableData.RecordsList предназначен для того, чтобы обойти все загруженные строки, игнорируя наложенные фильтры и сортировки (и не двигая курсор - текущую запись.)
XPerformer я полагал что это увеличит производительность. ну и в учебных целях конечно
deyatel1974
В учебных - это конечно.
А если производительность увеличить в разы - то лучше взять другой компонент, здесь было сравнение http://forum.ru-board.com/topic.cgi?forum=33&topic=8529&start=5760#20
В учебных - это конечно.
А если производительность увеличить в разы - то лучше взять другой компонент, здесь было сравнение http://forum.ru-board.com/topic.cgi?forum=33&topic=8529&start=5760#20
XPerformer, полезное исследование. А какая версия EhLib там участвовала? Может, нынешние себя получше ведут и уже не умирают на 100 тыс записей?
landy
один из последних билдов. так что это врядли
Хуже то, что он не всегда находит записи. У него очень удобный встроенный поиск, но я уже давно замечал, что русские слова находит не всегда. А тест показал, что и числа, увы тоже. Это гораздо хуже, на мой взгляд, критическая ошибка
один из последних билдов. так что это врядли
Хуже то, что он не всегда находит записи. У него очень удобный встроенный поиск, но я уже давно замечал, что русские слова находит не всегда. А тест показал, что и числа, увы тоже. Это гораздо хуже, на мой взгляд, критическая ошибка
XPerformer, а это не может быть связано с разностью кодировок, например (одно/мультибайтовая)?
landy
не знаю как может повлиять кодировка на поиск по целочисленному полю
не знаю как может повлиять кодировка на поиск по целочисленному полю
XPerformer, в поддержку не пробовал писать? Они вроде реагируют на баг-репорты, но не факт, конечно, что сразу..
можно и написать. Но они ж не волшебники, ошибки может и исправят, но скорость вряд ли поднимут до лидера хитпарада. Поэтому при наличии альтернативы чего зазря людей беспокоить.
XPerformer, альтернатива может быть достаточно трудоемкой - если в проекте, например, уже используется DBGridEh, то менять всё на монструозный DevExpress может быть не очень правильно, если, конечно, в остальном всё устраивает.
landy
речь не о DBGridEh, а о MemTableEh. Его заменить на другой компонент - дело недолгое (причем я-то как раз не считают devexpress хорошей альтернативой, из-за его нестандартности и громоздкости). Есть несколько других быстрых и надежных отдельно изданных мемори-датасетов, и даже бесплатных при этом
речь не о DBGridEh, а о MemTableEh. Его заменить на другой компонент - дело недолгое (причем я-то как раз не считают devexpress хорошей альтернативой, из-за его нестандартности и громоздкости). Есть несколько других быстрых и надежных отдельно изданных мемори-датасетов, и даже бесплатных при этом
landy
Цитата:
Судя по этому вопросу вы не путаете понятия датасет и грид.
Цитата:
XPerformer, альтернатива может быть достаточно трудоемкой - если в проекте, например, уже используется DBGridEh, то менять всё на монструозный DevExpress может быть не очень правильно, если, конечно, в остальном всё устраивает.
Судя по этому вопросу вы не путаете понятия датасет и грид.
Samotek, нет не путаю. Я имел в виду, что раз в DevExpress и в EhLib входят свои грид и датасет, то использовать одно из одного пакета, а другое из другого хоть и возможно, но довольно громоздко. Разумнее ограничиться одним пакетом компонент. Заменить же только InMemory-датасет проще, согласен, но, на мой взгляд, лучше минимизировать количество сторонних библиотек.
landy
нет, не разумнее, если компонент из одного пакета гораздо лучше чем из другого и наоборот, поэтому они дополняют друг друга. Я использую DBGridEh + AbsTable in memory, пользователю как-то все-равно сколько пакетов, зато не все равно, когда программа загружается 3 мин вместо 20 сек. Да еще и поиск работает через раз
нет, не разумнее, если компонент из одного пакета гораздо лучше чем из другого и наоборот, поэтому они дополняют друг друга. Я использую DBGridEh + AbsTable in memory, пользователю как-то все-равно сколько пакетов, зато не все равно, когда программа загружается 3 мин вместо 20 сек. Да еще и поиск работает через раз
Использую стандартный функционал отметки записей (чек-боксы в столбце индикатора).
Если при наличии отмеченных записей выполнить переход по записям с помощью стрелок на клавиатуре все отмеченные записи сбрасываются, если то же выполнить с помощью колесика мыши то все нормально.
Это есть глюк или фича?
Если при наличии отмеченных записей выполнить переход по записям с помощью стрелок на клавиатуре все отмеченные записи сбрасываются, если то же выполнить с помощью колесика мыши то все нормально.
Это есть глюк или фича?
AnViSe
Цитата:
Options dgMultiSelect
Цитата:
Это есть глюк или фича?
Options dgMultiSelect
Samotek
В свойстве Options включены dgRowSelect и dgMultiSelect.
В свойстве Options включены dgRowSelect и dgMultiSelect.
AnViSe
Цитата:
Ну еще OptionsEh.dghClearSelection
Цитата:
В свойстве Options включены dgRowSelect и dgMultiSelect.
Ну еще OptionsEh.dghClearSelection
Samotek
Со значением OptionsEh.dghClearSelection = False все стало на свои места, спасибо.
Со значением OptionsEh.dghClearSelection = False все стало на свои места, спасибо.
NightSpawn думаю что нет в прямом смысле. Но можно группировать по своему специально подготовленному полю где программно задать условия группировки (Например Группа - Негруппированные ) И её держать открытой. Либо я не совсем понял вопрос - там не хватает какой-то частицы речи - например "бы"
Цитата:
NightSpawn думаю что нет в прямом смысле. Но можно группировать по своему специально подготовленному полю где программно задать условия группировки (Например Группа - Негруппированные ) И её держать открытой. Либо я не совсем понял вопрос - там не хватает какой-то частицы речи - например "бы"
Ну, например:
Где два элемента в "группе", там группировать, где один, то просто отображать как один элемент.
NightSpawn Теперь понятно. Я такого не встречал. Или группируем или нет. А то слишком специфично получается. Как вариант - пробежаться по группам и если внутри один элемент то делать ей экспанд. Не очень красиво может получится.
Понятно, будем посмотреть
Страницы: 1234567891011121314151617181920212223
Предыдущая тема: Конвертация char в ASCII код; c
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.