|
|
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
Всем добрый день. Есть задача создания динамического меню. Я написал код Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Данные в TreeView1 загружаются из файла через Код: pascal 1. В строке Код: pascal 1. Вы можете видеть a1Click который должен отвечать за клик по меню который был оформлен в виде Код: pascal 1. 2. 3. 4. и MItem.Caption который отвечает за имя меню. Есть ли возможность получить имя меню при вызове a1Click? Если да то как? Заранее спасибо. Среда разработки Delphi 10.2 Architect ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2020, 13:31 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
медитируй над Сендером (Sender) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2020, 13:38 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
MidastaЕсли да то как? Задумайся: зачем у обработчика события параметр Sender? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2020, 13:39 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, Добрый день. В a1Click я пишу Код: pascal 1. и получаю TMenuItem. Не подскажите как его использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2020, 13:43 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
На выбор Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2020, 13:45 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
11.09.2020 13:43, Midasta пишет: > и получаю TMenuItem. да шо ты говоришь! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2020, 13:48 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий 11.09.2020 13:43, Midasta пишет: > и получаю TMenuItem. да шо ты говоришь! Спасибо за направление))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2020, 13:51 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
X-Cite На выбор Код: pascal 1. 2. Все получилось. Большое спасибо))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2020, 13:52 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
А зачем имя? Попахивает кривизной архитектуры... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2020, 15:31 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
11.09.2020 15:31, white_nigger пишет: > А зачем имя? Попахивает кривизной архитектуры... нет там архитектуры Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2020, 15:39 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
Мне вообще непонятна цель переноса из Tree в Menu - "или крестик снимите, или трусы наденьте".... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2020, 01:24 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
DarkMaster Мне вообще непонятна цель переноса из Tree в Menu Ну просто у меню нет метода LoadFromFile. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2020, 11:27 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
DarkMaster Мне вообще непонятна цель переноса из Tree в Menu - "или крестик снимите, или трусы наденьте".... Добрый день. Просто есть цель позволить пользователю переключатся между классическим и стандартным видом меню.Все пункты я храню в базе данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 10:26 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
14.09.2020 10:26, Midasta пишет: > Все пункты я храню в базе данных нахрена? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 11:51 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий 14.09.2020 10:26, Midasta пишет: > Все пункты я храню в базе данных нахрена? У каждого меню есть свой ID который задается во время добавления нового пункта меню и сразу же сохраняется базу и в соответствии с этим ID открывается форма связанная с этим меню ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 12:03 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий нахрена? Это один из стандартных идиотизмов, с которых начинают ламеры, пытающиеся спроектировать суперпупервундервафлю. Следующими шагами обычно становятся отказ от визуального дизайнера, "все формы мы храним в БД" итдитп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 12:06 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
14.09.2020 12:03, Midasta пишет: > У каждого меню есть свой ID который задается во время добавления нового пункта меню и сразу же сохраняется базу > и в соответствии с этим ID открывается форма связанная с этим меню повторяю вопрос. нахрена? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 12:07 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, При двойном клике программа обращается в базу и в соответствии с ID открывает форму привязанную к пункту меню ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 12:32 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
14.09.2020 12:32, Midasta пишет: > > При двойном клике программа обращается в базу уточняющий вопрос. нахрена в базу? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 12:35 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, Может произойти динамическое добавление пункта меню пользователем такое как добавление отчета который сохранен в текстовом файле.И для хранения пути к этому файлу мне удобней хранить эти данные в базе. У Вас есть какие то предложения чтобы оптимизировать этот процесс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 12:41 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
14.09.2020 12:41, Midasta пишет: > Может произойти динамическое добавление пункта меню пользователем а динамическое добавление КОДА, который будет обрабатывать этот "динамически добавленный пункт меню" кто будет делать? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 15:23 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
softwarer Мимопроходящий нахрена? Это один из стандартных идиотизмов, с которых начинают ламеры, пытающиеся спроектировать суперпупервундервафлю. Следующими шагами обычно становятся отказ от визуального дизайнера, "все формы мы храним в БД" итдитп. Хранение идентификаторов пунктов главного меню в базе - отличная практика. Таким образом очень легко и удобно настроить права доступа, видимость и порядок пунктов. У разных клиентов (и их пользователей) они разные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 16:47 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий 14.09.2020 12:41, Midasta пишет: > Может произойти динамическое добавление пункта меню пользователем а динамическое добавление КОДА, который будет обрабатывать этот "динамически добавленный пункт меню" кто будет делать? Например, вызов функции плагина, или ShellExecute имени файла-отчета... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 16:52 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
YuRock Таким образом очень легко и удобно настроить права доступа, видимость и порядок пунктов. Настройка на этом уровне прав доступа - идея крайне сомнительная. Проще всего её прокомментировать следующим образом: а все кнопки приложения тоже в БД записывать? Видимость - частное следствие прав доступа. Что касается порядка пунктов... скажем так, лично мне никогда не требовалось такого делать. Я поработал с одной системой, где такое было, и вынес для себя решение, что это дикий и ничем не оправданный бардак. В результате коммуникации с пользователем - что и где ему нужно нажать или что он нажимает и у него не работает - стали отдельным квестом на любителя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 17:11 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
softwarer Настройка на этом уровне прав доступа - идея крайне сомнительная. Проще всего её прокомментировать следующим образом: а все кнопки приложения тоже в БД записывать? Кнопки приложения по-хорошему должны соответствовать Actions. Из имени Action можно получить имя чего-то (таблицы или функции) в БД. Я так и делал - проверял есть ли у данного усера право на соответствующий объект базы и соответственно енайблил Action. В результате все права настраивались на уровне ролей в БД. Очень удобно. softwarer Что касается порядка пунктов... скажем так, лично мне никогда не требовалось такого делать. Я поработал с одной системой, где такое было, и вынес для себя решение, что это дикий и ничем не оправданный бардак. В результате коммуникации с пользователем - что и где ему нужно нажать или что он нажимает и у него не работает - стали отдельным квестом на любителя. Тут согласен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 18:58 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
Victor Cookin Кнопки приложения по-хорошему должны соответствовать Actions. Именно. Следующий пункт - связь между Action-ом и ролью. И для "идентификаторов пункта меню" места ну совершенно не остаётся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 19:05 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
softwarer Настройка на этом уровне прав доступа - идея крайне сомнительная. Проще всего её прокомментировать следующим образом: а все кнопки приложения тоже в БД записывать? Но иногда и это может быть удобно. softwarer Видимость - частное следствие прав доступа. Нет, и близко. Один клиент говорит - уберите эти отчеты из меню, мы ими не пользуемся! А другой - так про другие говорит, и так далее. softwarer это дикий и ничем не оправданный бардак Да какой бардак. Есть порядок по умолчанию, который и используется всегда. И только если, опять же, какой-то клиент хочет поменять пункты местами - можно добавить исключение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 19:35 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
Midasta Может произойти динамическое добавление пункта меню пользователем такое как добавление отчета который сохранен в текстовом файле.И для хранения пути к этому файлу мне удобней хранить эти данные в базе. Меню храним в базе, а отчёты - в локальном файле, зашибись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 19:36 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
softwarer Victor Cookin Кнопки приложения по-хорошему должны соответствовать Actions. Именно. Следующий пункт - связь между Action-ом и ролью. И для "идентификаторов пункта меню" места ну совершенно не остаётся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 19:37 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
ъъъъъ Midasta Может произойти динамическое добавление пункта меню пользователем такое как добавление отчета который сохранен в текстовом файле.И для хранения пути к этому файлу мне удобней хранить эти данные в базе. Меню храним в базе, а отчёты - в локальном файле, зашибись. В базе - данные отчета, а отчет нужен, чтобы на него глянуть и при желании распечатать, всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 19:40 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
YuRock Но иногда и это может быть удобно. Как обоснование выбора архитектурного решения такое "иногда" совершенно не катит. YuRock Один клиент говорит - уберите эти отчеты из меню, мы ими не пользуемся! Так это модульная структура приложения. Не поставлять ему эти модули и всё. YuRock Да какой бардак. Самый что ни на есть конкретный. Видел я приложение, в котором решили дать аналитикам настраивать расположение кнопок, картинки, надписи итп. непосредственно в exe - с благородной целью "чтобы не отвлекать разработчиков на эти мелочи". В итоге на dev-сервере приложение выглядит одним образом, на test-сервере другим, а на проде и вовсе третьим, и переключаясь между ними, регулярно лезешь в конфигуратор дабы найти "да куда ж блин засунули мою кнопку-то??" YuRock Есть порядок по умолчанию, который и используется всегда. И только если, опять же, какой-то клиент хочет поменять пункты местами - можно добавить исключение. "За всю свою жизнь" я не встречал клиентов, которые бы этого всерьёз хотели. Если позарез потребуется, то приделать, конечно, несложно, но опять же, как обоснование архитектурного решения - ну просто и близко недостаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 20:14 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
YuRock А смысл отчет в базу пихать? В базе - данные отчета, а отчет нужен, чтобы на него глянуть и при желании распечатать, всё. 1000 пользователей, отчёт поменялся - как деплоить будем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 20:44 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
softwarer Так это модульная структура приложения. Не поставлять ему эти модули и всё. С тех пор только настройки и разрешения в лицензионных ключах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 22:03 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
Victor Cookin YuRock А смысл отчет в базу пихать? В базе - данные отчета, а отчет нужен, чтобы на него глянуть и при желании распечатать, всё. 1000 пользователей, отчёт поменялся - как деплоить будем? Если "текстовый файл отчета" - это код отчета, то я согласен, конечно. Мне показалось, что это у ТС - результат отчета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 22:06 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
softwarer Видел я приложение, в котором решили дать аналитикам настраивать расположение кнопок, картинки, надписи итп. непосредственно в exe - с благородной целью ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 22:08 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
softwarer "За всю свою жизнь" я не встречал клиентов, которые бы этого всерьёз хотели Некоторые кнопки (я их называю "быстрыми") я даже разрешил настраивать (или убирать) по многочисленным просьбам. Как раньше в кнопочных нокиях было "Menu Active". Очень удобно было поставить в это меню то, что нужно. Я вот видел прогу Microsoft Retalix, даже частично драйвер для нее писал для работы с отпуском топлива. Так вот там - настраиваются вообще, фактически все кнопки в программе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2020, 22:16 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
YuRock softwarer Так это модульная структура приложения. Не поставлять ему эти модули и всё. С тех пор только настройки и разрешения в лицензионных ключах. Не вижу сложности в том, чтобы клиенту отправилась или не отправилась dll-ка. Да, конечно, с тем же успехом можно сделать так, что модуль едет всегда, просто в конфиге стоит "не включать его". Но опять-таки, это настройка модуля, а не пункта меню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2020, 09:44 |
|
||
|
Получить имя меню при вызове процедуры
|
|||
|---|---|---|---|
|
#18+
softwarer YuRock пропущено... Мой жизненный этап, когда я готовил сборки под каждого клиента, слава богу, уже закончился лет 15 назад. С тех пор только настройки и разрешения в лицензионных ключах. Не вижу сложности в том, чтобы клиенту отправилась или не отправилась dll-ка. Да, конечно, с тем же успехом можно сделать так, что модуль едет всегда, просто в конфиге стоит "не включать его". Но опять-таки, это настройка модуля, а не пункта меню. И пункты меню далеко не всегда вызывают что-то из отдельного модуля. В общем, мне нового сказать уже нечего, всё удобство держать настройки видимости/порядка пунктов меню в базе я уже описал со своей точки зрения, и добавить нечего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2020, 10:03 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2038006]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
215ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
91ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 583ms |

| 0 / 0 |
