powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Настройки форм
10 сообщений из 10, страница 1 из 1
Настройки форм
    #40074080
Sashaua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня всем.
Для хранения настроек использую две таблицы
Таблица SETTING
IDNAMEID_TYPEID_GROUP

Таблица SETTING_USERS
IDID_SETTINGID_USERVALUE

Есть ряд настроек которые показывают или скрывают контролы на разных формах.
Вопрос, как елегантно реализовать подход который позволит легко добавлять новые настройки? в идеале хочеться иметь одну функцию которой передать форму к которой необходимо применить настройки, и уже в нутри процедуры реализовать магтю.
Какой вы подход используете ?
...
Рейтинг: 0 / 0
Настройки форм
    #40074096
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sashaua
Какой вы подход используете ?

0. Учиться программировать до того, как приходить на форум, и задавать вопросы в ходе обучения.
1. Мыслить достаточно ясно, чтобы хотя бы суметь задать толковый вопрос.
2. Не страдать фигнёй.
...
Рейтинг: 0 / 0
Настройки форм
    #40074131
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sashaua,

Я видел проекты, в которых магия реализовывалась следующими путями:
- хранение в БД dfm формы
- реализация динамического создания форм на основе некоторых скриптовых движков (зачастую самописных)
...
Рейтинг: 0 / 0
Настройки форм
    #40074132
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sashaua, а при чем тут настройки каких-то форм?
И БД при чём?
Вы свою задачу, которую вы делаете можете описать?
...
Рейтинг: 0 / 0
Настройки форм
    #40074220
Sashaua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
northener,

есть допустим настройка
таблица SETTING
IDNAMEID_TYPEID_GROUP1Просмотр карточки клиентов11

таблица SETTING_USERS

IDID_SETTINGID_USERVALUE1123True

Означает что пользователю с ID 23 доступер просмотр карточки клиентов. Дальше на форме где есть меню или кнопка которая отображает карточку клиентов отображается или скрывается контрол.
Для формы есть процедура
Код: pascal
1.
2.
3.
4.
procedure apply_form_settings;
begin
mm_customercard.Visible:=Setting.s_1;
end;


Для каждой формы есть своя процедура которая применяет настройки. Хотел спросить кто как решает у себя такую задачу.
Возможно имеет смысл иметь одину процедуру которую использовать для всех форм в которую передать форму к которой необходимо применить настройки и в нутри такой процедуры выполнять магию?
...
Рейтинг: 0 / 0
Настройки форм
    #40074221
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashauaВозможно имеет смысл иметь одину процедуру которую использовать для всех форм в которую
передать форму к которой необходимо применить настройки и в нутри такой процедуры
выполнять магию?

Это будет нарушением ООД.

Форма инкапсулирует UI функционал (кнопку в данном случае) и лезть к ней извне - плохая идея.

Юнит или класс, хранящий в себе права текущего пользователя, к которому обращается форма
при своём создании чтобы решить показывать кнопку или нет - гораздо правильнее.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Настройки форм
    #40074222
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sashaua
Хотел спросить кто как решает у себя такую задачу.

Есть объект, который кэширует права пользователя. При старте приложения он считывает список текущих грантов, при получении сигнала об изменениях - перечитывает. У action-а есть свойство "название привилегии". Соответственно, отсутствие этой привилегии в описанном списке означает автоматический visible = false.

Ну, для полноты картины человек с ролью "разработчик" автоматически обладает всеми привилегиями, но может в рантайме отключить некоторые - чтобы проверить, как будет выглядеть и вести себя приложение в этом случае.
...
Рейтинг: 0 / 0
Настройки форм
    #40074247
Фотография Exteris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sashaua
в идеале хочеться иметь одну функцию которой передать форму к которой необходимо применить настройки

Ну так имейте. У меня когда-то было примерно так -
Таблица iduseridformnamecontrolnamevisiblereadonly
И процедура в которую передается форма, и которая выдергивает из таблицы данные по доступу для конкретного пользователя, пробегает по всем контролам формы и делает им нужные разрешения.
Есть нюансы, но в целом вариант рабочий.
...
Рейтинг: 0 / 0
Настройки форм
    #40074330
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
31.05.2021 08:04, Exteris пишет:
> Ну так имейте. У меня когда-то было примерно так -
> Таблица
> id userid formname controlname visible readonly

я бы добавил ещё app_name.
а лучше app_GUID, чтоб у юзера не возникало соблазна переименовать аппликацию.


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Настройки форм
    #40074337
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я добавил поле blob и храню там json, хотя.... хватило бы и обычного varchar.
А в json уже сам извращаяся как хочешь.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Настройки форм
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]