![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Gorets |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 30.5.2005 Репутация: нет Всего: нет |
Пишу бухгалтерскую программу. Пользователей будет много и каждому нужно дать доступ только к определенным частям програмы. Я думаю сделать это с помощью Enabled/Disabled определенных элементов интерфейса (кнопок, панелей, радиобатанов).
Каким образом лучше всего сохранить в базе данные по настройкам для каждого пользователя и потом при входе в прогу применить эти настройки? как вариант я думаю сохранять в базу приблизительно такие данные:
и т.д. а при входе надо как-то применить эти настройки.... вот только не знаю как это правильно прописать.. |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Лучше всего, если пользователи не сильные в компах, написать все в Ini-файлах. Поищи по форуму, я уже постил про такое...
А если пользователи продвинутые, тогда лучше в реестр запихать. -------------------- Ll 2 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Лучше, не disabled, а visible.
Менять в OnShow формы. |
|||
|
||||
| Gorets |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 30.5.2005 Репутация: нет Всего: нет |
можно и visible... вот только как правильно это написать...
в базе хранится ведь стринговое значение fDogovor.btOk как обратиться к подобному объекту??? т.е сделать fDogovor.btOk.visible:=True Это сообщение отредактировал(а) Gorets - 23.3.2006, 14:45 |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
не с той стороны заходиш. нужно не к fDogovor.btOk.visible обращаться, а компонентом проверять значение...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Gorets,
Я думаю, что ты совершенно правильно думаешь. Только надо еще добавить поле "тип объекта", а поле статус должно иметь больше двух значений(например - только читать, читать и писать, только писать) Применяется такая схема просто. При первоначальной настройке выбираются все записи по данному пользователю с типом объекта "Интерфейс". Объекты интерфейса обрабатываются в соответствии с полученными записями. Для применения системы ограничений/разрешений во время работы программы нужно определиться, какие объекты будут задействованы в системе. Это могут быть операции изменения, конкретные таблицы, файлы и т.д. В БД добавляется хранимая процедура для проверки прав на конкретный объект. И перед любой операцией проверять права доступа на необходимые объекты. Конечно, только на словах выглядит все просто. На практике, конечно, всё значительно сложнее. -------------------- |
|||
|
||||
| Gorets |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 30.5.2005 Репутация: нет Всего: нет |
вот например получил я из базы данные:
fDogovor.btOk и 1 как мне теперь обратиться к объекту fDogovor.btOk и сделать его видимым? может так? меня интересует синтаксис! object(fDogovor.btOk).visible:=True; |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Тебе не нужно так делать. Ведь интерфейсная часть - наиболее постоянная часть программы. У тебя в программе ограниченный набор объектов интерфейса. Зафиксируй для каждого такого объекта имя, под которым он будет находиться в БД. По сущестыу - таблица соответствия, которую тоже в БД можно вынести. -------------------- |
|||
|
||||
| Gorets |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 30.5.2005 Репутация: нет Всего: нет |
так я это и делаю..... только как потом по этому имени обратиться к объекту? я делаю так:
|
||||
|
|||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
а что зы движок базы данных? может пожно на этом уровне все сделать?
ну или шифровать часть базы паролем юзера -------------------- Обижено школьников: 8 |
|||
|
||||
| Gorets |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 30.5.2005 Репутация: нет Всего: нет |
кажется решил..
|
|||
|
||||
| Gorets |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 30.5.2005 Репутация: нет Всего: нет |
все замечательно работает если объектом является Button,Panel,RadioButton и т.д. а вот с элементами главного меню и контекстного меню такой вариант не проходит.... как быть? |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
ага. поэтому делаем не через cout, а по-человечески...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Gorets |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 30.5.2005 Репутация: нет Всего: нет |
жду примера в таком случае!!!
|
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
По-моему, ты напутал форум с C++ -------------------- Ll 2 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |