Вверх ↑
Этот топик читают: Гость
Ответов: 2193
Рейтинг: 673
#1: 2013-12-07 17:49:19 ЛС | профиль | цитата
Выложу некоторые наработки по увеличению функционала MTStrTbl: MT таблица строк.
Все выложенное является набросками.
Что получилось:
1.Размер заголовка получилось изменить, а так же подогнать начало таблицы под заголовок. Сдвинуть заголовок под таблицу так и не получилось (см. строку 489). При сдвиге, остается не прорисованный участок слева. Размер заголовка сделал под высоту шрифта, возможно не самый лучший вариант.
tableheader.jpg
2.После реализации 1 пункта появился доступ к Handle заголовка. Для удобства был сделан элемент MST_SelfDrawManager: Менеджер самостоятельной прорисовки MTStrTbl. Элемент подключается к таблице как менеджер и выдает события для прорисовки таблицы и Handle заголовка и таблицы.
drawonheader.jpg
3.При подключении MST_SelfDrawManager появилась возможность рисовать в ячейках. К примеру возможно нарисовать кнопки, которые будут работать как обычные.
drawbuttons.jpg
firstbutton.jpg
4. Попытался ограничить изменения ширины столбцов (всех или указанных). Заблокированные для изменения ширины столбцы не реагируют на нажатие курсора мыши (как одинарное, так и двойное). Есть небольшой глюк: при перетаскивании курсора по заголовку с права от разделителя у заблокированных для изменения колонок (пикселей вроде 5) появляется курсор для изменения ширины. Его в теории (если правильно понял мануалы) можно убрать, но не стоит шкурка выделки.
changewidth.jpg
5.Работать с фильтром в заголовке. Событие на нажатие кнопок, событие на изменения текста фильтра и очистка фильтров. Конечно большой вопрос, нужен ли вообще этот фильтр кому.
filterbar.jpg
Какие проблемы возникли:
1.Перестало отрабатываться событие onMouseUp, костыль строка 1007,1008.
2.При добавлении второй таблицы у первой вообще не прорисовывается заголовок. Причина скорее всего в перехвате HeaderWndProc строка 472.
tableerror.jpg
Может вам nesco удастся из всего этого сделать что-нибудь полностью работоспособное.

В архиве измененный элемент MTStrTbl и MST_SelfDrawManager и четыре примера.

Изменения в MTStrTbl помечены как //test многое прокомментировано.
карма: 10

4
файлы: 8tableheader.jpg [55.4KB] [1681], changewidth.jpg [33.5KB] [1509], drawbuttons.jpg [44.1KB] [1607], drawonheader.jpg [36.2KB] [1588], filterbar.jpg [17.7KB] [1493], firstbutton.jpg [44.8KB] [1504], tableerror.jpg [8.1KB] [1588], tablenewtest.zip [30.9KB] [537]
Голосовали:filyaxxxcom, Konst, miver, Nickname
vip
#1.1контекстная реклама от партнеров
Ответов: 8886
Рейтинг: 823
#2: 2013-12-07 18:23:51 ЛС | профиль | цитата
sla8a, там, в MTStrTЫ, и так функционала выше крыши, оставьте её в покое
карма: 19

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#3: 2013-12-07 18:33:56 ЛС | профиль | цитата
Положу пока в избранное, появится время, попытаюсь разобраться.

карма: 22

0
Ответов: 2193
Рейтинг: 673
#4: 2013-12-07 18:35:09 ЛС | профиль | цитата
Леонид писал(а):
в MTStrTЫ, и так функционала выше крыши, оставьте её в покое
А что боитесь что лопнет?
Обещал выложить эти наработки для nesco. Пробовал свои силы в программировании, маловато у меня знаний для такого элемента. Да и вопрос не стоит в добавлении всего этого в MTStrTЫ. Возможно кроме nesco будет еще кому интересно.
карма: 10

0
Ответов: 186
Рейтинг: 9
#5: 2014-05-20 12:53:50 ЛС | профиль | цитата
sla8a, добрый день.

Очень хочется увидеть данные компоненты на svn.
Планируется ли доработка компонентов?
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#6: 2014-05-20 13:09:48 ЛС | профиль | цитата
Chipset писал(а):
Планируется ли доработка компонентов?

Пока не планируется. Но никто не мешает использовать выложенные добавления, заодно и потестировать
карма: 22

0
Ответов: 186
Рейтинг: 9
#7: 2014-05-20 14:22:35 ЛС | профиль | цитата
nesco писал(а):
Пока не планируется. Но никто не мешает использовать выложенные добавления, заодно и потестировать

Пробовал использовать.

Измененный элемент MTStrTbl коряво работает.

Потестировать конечно могу, но без знания языка, думаю это бесполезно.
Просто указать на то, что на мой взгляд не верно работает.
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#8: 2014-05-20 14:49:58 ЛС | профиль | цитата
Chipset писал(а):
Измененный элемент MTStrTbl коряво работает

Вот поэтому пока отправлено все в лежку
карма: 22

0
Ответов: 2193
Рейтинг: 673
#9: 2014-05-20 19:19:54 ЛС | профиль | цитата
Chipset, поймите доработка такого компонента как MTStrTbl требуют определенного уровня знаний. Которого у меня к сожалению пока нет. Возможно через какое-то время, но точно не сейчас.
карма: 10

0
Ответов: 186
Рейтинг: 9
#10: 2014-05-22 12:11:55 ЛС | профиль | цитата
sla8a, nesco, все ясно, как день)))
Будем ждать с нетерпением.
карма: 0

0
Ответов: 118
Рейтинг: 0
#11: 2018-05-26 07:10:26 ЛС | профиль | цитата
А где пример с фильтрами?
карма: 0

0
Ответов: 2193
Рейтинг: 673
#12: 2018-05-26 12:39:36 ЛС | профиль | цитата
Spectr20, а нету. Вот не знаю я зачем этот фильтр в заголовке. В каких таблицах его использование целеосообразно? Мне таблицы с таким заголовком не попадались.
карма: 10

0
Ответов: 4612
Рейтинг: 746
#13: 2018-05-29 11:16:08 ЛС | профиль | цитата
sla8a писал(а):
В каких таблицах его использование целеосообразно?
Он используется для поиска в таблице. Без него пришлось бы делать дополнительную либо выезжающую панельку, либо диалог - а это не так наглядно.

Использую компоненты EhLib - там фильтр в таблицах очень удобная вещь:



Редактировалось 1 раз(а), последний 2018-05-29 11:16:34
карма: 26

0
Ответов: 118
Рейтинг: 0
#14: 2018-05-29 12:13:52 ЛС | профиль | цитата
Использую компоненты EhLib - там фильтр в таблицах очень удобная вещь:

А где их взять? Поиск по форуму ни чего не дал. И если не сложно примерчик.

Редактировалось 1 раз(а), последний 2018-05-29 12:15:31
карма: 0

0
Ответов: 4612
Рейтинг: 746
#15: 2018-05-29 12:36:28 ЛС | профиль | цитата
Это не в HiAsm, это на "большом" Delphi.

http://www.ehlib.com/en/screenshots

Редактировалось 1 раз(а), последний 2018-05-29 14:54:57
карма: 26

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)