Советы по реализации управления разрешениями в DELPHI
При использовании DELPHI для компиляции некоторых прикладных систем часто необходимо предоставлять разные разрешения разным пользователям, и в разных системах используются разные методы распределения разрешений. Если разрешения назначаются каждому пользователю в программе, это не только делает подготовку программы. очень хлопотно, и это не способствует управлению! Недавно автор придумал метод, который, на мой взгляд, лучше, и я хотел бы поделиться им с вами. Надеюсь, вы дадите мне больше советов!
Во многих системах разрешения обычно делятся на несколько уровней. Операции, которые могут выполнять пользователи на каждом уровне, различны, и метод достижения этой функции обычно заключается в том, чтобы позволить пользователям с разными разрешениями видеть разные меню. Проще говоря, это меню невидимо для пользователей, не имеющих определенных разрешений! Чтобы добиться такого контроля, программистам часто приходится тратить много времени на работу над этим модулем, тратя много драгоценного времени!
Идея автора такова: если мы создадим двумерный массив, первое измерение представляет меню первого уровня, а второе измерение представляет подменю. Каждый элемент массива хранит только два числа 0 или 1. Пользователь с. определенный авторитет соответствует двумерному массиву A, и этот массив представляет соответствующее меню. После назначения разрешений пользователю определенного уровня у него появится соответствующий массив. При входе берите значение каждого элемента из массива. Если оно равно 1, то появится соответствующее меню, если 0, то меню не появится. Этот метод можно использовать не только для классификации (массивы пользователей на одном уровне одинаковы), но также можно разделить разрешения между разными пользователями, если вы измените соответствующее значение на 0 или 1!
Вышеупомянутое является результатом простого примера.
Ниже приведена часть исходной программы (это всего лишь поясняющий пример программы. Для простоты в программе только одна форма и одно главное меню). Инициализируйте массив M при создании формы, читайте значение массива при отображении и управляйте отображением, устанавливая свойство Enabled меню или True или False свойства Visible! !
вар
Форма1: ТФорм1;
m:array[0..1,0..4] целого числа //Определение хранимого массива;
i,j:integer;//Определяем переменные цикла
выполнение
{$R *.dfm}
PROcedure TForm1.FormShow(Отправитель: TObject);
начало //Чтение цифр и управление отображением меню
для i:=Low(m) до High(m) сделайте
для j:=Low(m[i]) до High(m[i]) начните
если m[i][j]=0, то MainMenu1.Items[i].Items[j].Enabled:=false
иначе MainMenu1.Items[i].Items[j].Enabled:=true;
конец;
конец;
процедура TForm1.FormCreate(Отправитель: TObject);
начать //Далее идет инициализация
к:=0;
для i:=Low(m) до High(m) сделайте
для j:=Low(m[i]) до High(m[i]) do
если (j mod 2)=0, то m[i][j]:=1
иначе m[i][j]:=0;
конец;