--- Добавлено в 2025-04-23 17:19:02
Кстати, фокус можно скрыть проще. Вот код на Delphi
SendMessage(ListView1.Handle, WM_UPDATEUISTATE, MakeLong(UIS_SET, UISF_HIDEFOCUS), 0);
Редактировалось 1 раз(а), последний 2025-04-23 17:19:02
Разработчик
Ответов: 26287
Рейтинг: 2145
|
|||
Да че-то не работает нормально. Черт бы с ним, оставим как есть
--- Добавлено в 2025-04-23 17:19:02 Кстати, фокус можно скрыть проще. Вот код на Delphi
Редактировалось 1 раз(а), последний 2025-04-23 17:19:02 |
|||
карма: 22 |
|
Ответов: 2415
Рейтинг: 691
|
|||
nesco писал(а): фокус можно скрыть проще. Вот код на Delphi |
|||
карма: 11 |
|
Разработчик
Ответов: 26287
Рейтинг: 2145
|
|||
sla8a писал(а): Я бы этот код в некоторые элементы бы вставил и как свойство вывел. В такие как RadioButton,CheckBox,Button.Да можно сделать. Я пока этим не занимался. Есть интересный проект по таблице. Пока не буду говорить, что это такое, что бы не сглазить ![]() |
|||
карма: 22 |
|
Ответов: 2415
Рейтинг: 691
|
|||
nesco, если что то пока не обновляй, буду менять свойство IgnoreEmptyField. Нужно добиться чтоб при получении фокуса при нажатии на пустое поле таблицы, выделение с строки не удалялось.
|
|||
карма: 11 |
|
Разработчик
Ответов: 26287
Рейтинг: 2145
|
|||
sla8a писал(а): если что то пока не обновляй, буду менять свойство IgnoreEmptyField. Нужно добиться чтоб при получении фокуса при нажатии на пустое поле таблицы, выделение с строки не удалялось.Понял. Пока не обновляю. |
|||
карма: 22 |
|
Разработчик
Ответов: 26287
Рейтинг: 2145
|
|||
Вот над каким проектом я сейчас работаю. Точнее, почти его закончил -- MST_Groups.
Единственное, что только немного напрягает, так это обязательное наличие стиля XP. Для штатного fpc это требует наличия прилинковки манифеста. Что вполне несложно сделать. Вот скриншот откомпилированной в штатном fpc версии с прилинковкой манифеста --- Добавлено в 2025-05-15 15:47:13 Что еще можно добавить, так это то, что компонент крайне сложен в понимании (и не только в понимании, но и в создании тоже ![]() Редактировалось 4 раз(а), последний 2025-05-15 15:51:10 |
|||
карма: 22 |
| ||
Голосовали: | sla8a, Gunta |
Ответов: 2415
Рейтинг: 691
|
|||
nesco, смотрится интересно. Когда тестировать будем?
|
|||
карма: 11 |
|
Разработчик
Ответов: 26287
Рейтинг: 2145
|
|||
sla8a писал(а): nesco, смотрится интересно. Когда тестировать будем?Скоро. Я решил немного пересмотреть код и упростить некоторые решения, которые могут сильно усложнить понимание работы компонента. Сейчас составляю более широкофункциональный пример, заодно отрабатываю поиск ошибок и дополнений. Редактировалось 1 раз(а), последний 2025-05-19 22:59:11 |
|||
карма: 22 |
|
Разработчик
Ответов: 26287
Рейтинг: 2145
|
|||
карма: 22 |
|
Разработчик
Ответов: 26287
Рейтинг: 2145
|
|||
Что-то не могу скопировать файлы в файлообменник. Вот временная ссылка на архив с компонентом - https://disk.yandex.ru/d/VfrFpcLh-VNb-Q. Можете проверить его работоспособность. Проверено на обоих штатных компиляторах, но с поддержкой манифеста XP-стиля.
Редактировалось 2 раз(а), последний 2025-05-25 00:35:01 |
|||
карма: 22 |
| ||
Голосовали: | sla8a, Gunta |
Ответов: 2415
Рейтинг: 691
|
|||
nesco, очень хорошо получилось! Есть куча вопросов:
1. Иконку элемента забыл в архив положить. 2. При включении отображения групп и включенной решетке (Grid = true) вертикальные линии границ столбцов не отображаются. Это фича или баг? 3. Нет свойства для того чтоб сразу отображались группы (только когда толкнешь doEnableGroupViewer = 1). Есть какие-то ограничения или можно добавить свойство? 4. При загрузки схемы всплывает что у тебя есть свойство HideFocus, это ты уже внес у себя в WinControl.ini для всех элементов? У меня при свойстве у таблицы FocusFrame=false на строках нет селектора, а на названия групп отображается. Селектор с названий групп можно отключить? 5. От стиля XP получится избавится в будущем сохраняя работу групп? 6. Шрифт (размер) названия групп можно изменить? А то даже при увеличении размера шрифта в таблице, шрифт групп остается маленьким (8 скорее всего). 7. При выборе группы (кликом курсора по названию группы) происходит задержка и только потом выбор группы. Это заметно как на твоей схеме из архива, так и на моей где всего две группы. С чем связана такая задержка? 8. Если в группе нет дочерних строк, то она не отображается. К примеру в твоей схеме удалить Петрова из группы Админ и группа перестает отображаться. Это можно сделать по свойству (ShowEmptyGroupe = True/False)? Схему ты конечно тестовую сделал хорошую, но не мешало бы и сделать еще одну попроще, чтоб было понятно как начать работать с таким элементом. Как вариант что-то вот такое:
|
|||
карма: 11 |
|
Ответов: 897
Рейтинг: 190
|
|||
Мне тоже элемент понравился. Кажется, что он будет востребован.
И не такой уж сложный. Пример группировки по любому столбцу. https://forum.hiasm.com/getfile/40584 К данным не придираемся. Они просто сгенерированы Редактировалось 3 раз(а), последний 2025-05-26 20:11:52 |
|||
карма: 18 |
| ||
файлы: 1 | Группировка в таблице.zip [2.7KB] [19] |
Ответов: 2415
Рейтинг: 691
|
|||
nesco, продолжу вопросы по элементу:
9. Если включено редактирование в таблице Redaction=Tru. При двойном клике на названии группы начинается редактирования выбранной строки в группе (при свойстве GroupCollapsable=False). При свойстве GroupCollapsable=true редактирование начинается при раскрытии группы. Как по мне то нужно заглушку на это дело делать. Элемент MST_UseEditCtrl правильно реагирует на двойной клик по названию группы и выдает сообщение только при двойном клике по строке (может эта информация поможет внести нужные изменения):
11. Не задействован Foщter (LVGF_FOOTER строка в нижней части группы). Он вроде работает (проверял). Думаешь не нужен или были причины не добавлять? Редактировалось 1 раз(а), последний 2025-05-26 21:11:19 |
|||
карма: 11 |
|
Разработчик
Ответов: 26287
Рейтинг: 2145
|
|||
1.Добавил в архив по ссылке
2.Если ты про грид в группах, то он не будет работать. Не предусмотрено системой 3. Метод doEnableGroupViewer запускает отображение групп через системное сообщение. Никто не мешает подать 1 в любой момент для запуска отображения. Не вижу надобности делать это автоматически. И не стоит, КМК. 4. Да, внес. Но пока не добавлял на SVN. 5. Нет. Это наложенное ограничение системой. Группы работают только при наличии commctrl 6-й версии, а это и есть стиль XP, которое включается манифестом. 6. Я даже не в курсе. Системных сообщений по изменению шрифта групп не существует. Может он как-то наследуется, но я пока не знаю как. 7. Понятия не имею с чем это связано. Но у меня она тоже есть. 8. Так предусмотрено системой -- пустые группы не отображаются. В msdn специально даже на это сделан упор. 9. Оставим пока под вопросом. 10. А смысл в нем? И там два режима -- doHidden и doCollapse 11. Я отказался от футера. Отвратно смотрится. А усложнять компонент чтобы было мне не импонирует. --- Добавлено в 2025-05-26 23:40:33 Уточнение по 9-му пункту. Мы не избавимся от этого, тк таблица и группы отрабатывают каждый по своему двойной клик. Да и не обязательно вызывать контекстное меню по двойному клику. Можно вызвать, например, по Shift-ЛКМ (в начале у меня так и было). Да и блокировать двойной клик при редактировании надо ли? Ладно, я еще подумаю на этим. --- Добавлено в 2025-05-26 23:51:49 А вот, кстати, что пишут про шрифт групп -- https://stackoverflow.com/questions/1887214/is-it-possible-to-change-the-font-size-of-tlistview-groups --- Добавлено в 2025-05-26 23:54:28 Надо будет еще вот это рассмотреть, но никакой гарантии нет, что будет работать -- https://www.kansoftware.ru/?tid=14528 --- Добавлено в 2025-05-27 00:09:56 Gunta писал(а): И не такой уж сложный.Он не сложный в режиме простого применения. В полнофункциональном режиме еще тот геморрой. Я там чуть не кончился, пока все это синхронизировал. --- Добавлено в 2025-05-27 00:17:30 Добавил на SVN правки Win.pas со свойством HideFocus Редактировалось 10 раз(а), последний 2025-05-27 02:29:36 |
|||
карма: 22 |
|
Разработчик
Ответов: 26287
Рейтинг: 2145
|
|||
карма: 22 |
|