![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Ну зачем тебе обращаться по имени, записааном в БД?
Ведь таких элементов у тебя не тысячи. -------------------- |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
А если все-таки тысячи? Допустим, элементов в меню больше 300, и в PopUp больше ста, да еще и кнопок уйма... Кажется, что человек делает платформу. У меня есть статья по написанию программ с правами доступа. Как найду, напишу здесь...
-------------------- Ll 2 |
|||
|
||||
| Демо |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
В конце-концов можно и спец. класс создать для работы с твоими элементами управления. Простой пример(схема, как можно обратиться по имени, наприм, к функции):
Добавлено @ 17:52
Тогда прямая дорога к использованию в каждом элементе управления поля Tag. Записываем в базу, заием поиск в RunTime по тегам. -------------------- |
||||||||||
|
|||||||||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Вот!!! Скорее всего, лучше этим воспользоваться. Писать в базу не названия компонентов, а их Tag -------------------- Ll 2 |
|||
|
||||
| Gorets |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 30.5.2005 Репутация: нет Всего: нет |
да все замечательно работает и так как я сделал!
+ так очень удобно хранить настройки не зависимо от к-ва элементов! нашел вариант и для менюшек:
Добавлено @ 17:59 я например изначально все кнопки в меню делаю невидимыми, а потом в зависимости от залогинившигося пользователя делаю видимыми только нужные ему кнопки! Добавлено @ 18:00 и база данных для хранения настроек очень простая и понятная! |
|||
|
||||
| Anakin |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 25.9.2006 Репутация: нет Всего: нет |
Пробовал я вариант который предложил 2 Демо
Разместил на форму 3 кнопки и сделал их инвизибл. Но почему то у меня работает тока первая кнопка так как она первая в таблице. (( КТо может подсказать в чем трабла ? И не как не мог разобратса с вариантом 2 Gorets Никак не могу его понять (( Как он работает. Можетли кто то показать пример по больше ?
Зарание Благодарен. Это сообщение отредактировал(а) Anakin - 7.3.2007, 09:47 |
||||
|
|||||
| samec |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 19.1.2007 Репутация: нет Всего: нет |
надо для каждой кнопки (эдита, мемо и т.п.) писать свой код, например:
и.т.п... если компонент много, то лучше использовать вариант предложенный Gorets |
||||
|
|||||
| Anakin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 25.9.2006 Репутация: нет Всего: нет |
2 samec
Да это я понял что нуна на каждую кнопку. ВОт допустим я поставил данный код в OnShow Формы где размещены данные элементы. И при запуске срабатывает тока первая кнопка которая хранитса в Базе. |
|||
|
||||
| ama_kid |
|
||||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 15 Всего: 95 |
Чо-та я не понял.. Рекурсии никого не учили что ли? Дали ведь хороший совет - использовать теги (зачем имена компонентов хранить в БД? Имхо - бред)...
Вот тестовый пример: я накидал на форму десять компонентов (главное меню с двумя пунктами, каждое содержит по два подпункта, кнопку, листбокс, едит). И еще одну кнопку, по которой будет все выполняцца... Всем элементам присвоил уникальные теги от 1 до 9. За настройки у меня отвечает константный массив (индекс в массиве = тэгу элемента), у топиккреатора - это может быть считываемый массив или еще что-нибудь, не важно... Привожу код модуля:
Как видно - у меня есть одна маленькая функция, которая вызывается рекурсивно для всех элементов формы (или любого компонента, заданного в качестве параметра). Размер функции практически не зависит от количества элементов (+/- пара строк если есть другие наследники TComponent, ну и оптимизация не помешала бы). Пример, конечно, тестовый, но он показывает как можно общаться с настройками компонентов. Настройки можно хранить просто массивом. Можно спокойно использовать как Visible, так и Enable... В общем адаптировать под конкретную задачу, думаю труда не составит... Какие неудобства у данного метода? Ненаглядность настроек в БД? Имхо - чушь, ибо пользователи не должны лезть в БД, а если лезут - им надо затруднить по маскимуму кастомизацию настроек. Необходимость использования массива? Ну, если жалко памяти - храните просто количество компонентов и используйте динамические массивы. Ненаглядность кода? Простите, но на таком малом объеме кода эта ненаглядность абсолютно нивилируется... Короче, это просто информация к размышлению, конкретную реализацию в итоге выбирать вам... Добавлено: Кстати, если все-таки хочешь хранить имена компонентов - можешь использовать следующую конструкцию цикла:
Это сообщение отредактировал(а) ama_kid - 7.3.2007, 13:41 -------------------- самурай без меча подобен самураю с мечом, но только без меча |
||||
|
|||||
| Anakin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 25.9.2006 Репутация: нет Всего: нет |
2 ama_kid
Вроде как немного понял. Если просьба я понимаю может звучать нагло но не мог бы ты маленький пример всего этого дать. Типа накидать там пару Элементов и показать как всё это обращаетса к БД. ПРсота я новенький и не всё сразу схватываю ( А когда есть пример рабодчий мона его поковырять и увидеть как всё там работает. ( Ещё раз прошу прощение за наглось ( ЗА рание Благодарен. |
|||
|
||||
| MAX2002 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
Ндаа прям камасутра у тебя какая то
, даю бесплатный совет, в Buildere и Delphi есть ActionManager, переводишь всю работу своей программы и все обработчики на екшены, и при onShow энейблишь их или дисейблишь..... |
|||
|
||||
| Elfebet |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 2 Всего: 14 |
ИМХО тада и тэги хранить тоже бред, лучше всего сохранять индекс компонента, тогда и не надо содавать массив, так как индекс компонента всегда уникальный.
Добавлено @ 14:47 А вообще правильно бы запихать кнопки и т.п в панель и эту панель для конретного пользователя прятать, а не каждую кнопку и т.п. делать визибл. -------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
||||
|
|||||
| Anakin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 25.9.2006 Репутация: нет Всего: нет |
2 Elfebet Да но Учти что есть допустим некоторые кнопки тоторые нуна спрятать. А некоторые оставить. Если ятебе понял правельно то ты хочешь проста запихать всё в Одно и при какихто усливиях прятать или показывать всю понель. Так не годитса.
Мне интересен способ автора данного топика но до меян никак не доезжает как всё это сделать. ( Тоесть впринципе я то знаю как их спрятот и как показать элементы. Но вот как сделать так что бы при вводе логина и пароля всё это обращалось к базе и считывалсоь от туда ( По этому и прошу пример ибо я новенький ( 2 ama_kid Попробовал твой вареант. Скажу что короший и удобный ) Но вот как к этой процедуре прикрутить базу с Логином паролем и уровнем доступа. Вот сиджу и чешу репу и никак не допираю. Я знаю что тут есть грамотные спецы помогите плизз начинающему. Если мона по внятней разжвать Прсоат очень кочетса сделать такую штуку ибо интерес есть а мозгов никак не хватает. ( |
|||
|
||||
| Elfebet |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 2 Всего: 14 |
Anakin, записываеш в базу индекс копмонента которого нужно спрятать/отобразить и все.
т.е. примерно где-то так:
Это сообщение отредактировал(а) Elfebet - 7.3.2007, 15:49 -------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
| Anakin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 25.9.2006 Репутация: нет Всего: нет |
2 Elfebet ДАвай по порядку.
1) Куда этот код нуна поместить в обрабодчик событий какого элемента ? 2) Что значит index 3) ЧТо это за поле и что в нем должно хранитса ? IndexComponent Обьясни плизз.. Если не сложно. Дальше вот я так наскоряк накидал пару компонентов и базу. КТо может гляньте плиз на изходник и скажите что там не правельно. У меня там никак не получаетса его соеденить с базой что бы при вводе логина и паса он вырубал Элементы. Если мона подправте плизз. Зарание благодарен. Это сообщение отредактировал(а) Anakin - 7.3.2007, 16:29 Присоединённый файл ( Кол-во скачиваний: 4 )
Project1.rar 22,76 Kb |
|||
|
||||
![]()
|
| Правила форума "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. |