-
Доброго времени суток!
Подайте идею как получить список контролов которые расположены на форме, для того что бы в дальейшем их перенести в БД. Это связано с построением системы ограниченя доступа. Т.е. писать маленькую программку по разбору dfm или pas файлов, или может есть другие пути? Не хочеться руками переностить, т.к. форма не одна, а кантролов еще больше.
Спасибо!
-
Controls[]
-
ControlsCount Controls[]
большое незачто, заглядывай в справку по чаще...
-
Спасибо, но техническую часть я знаю. Меня интересовал сам подход.
-
Что ты имеешь в виду под фразой "перенести в БД". Описание форм там хранить собираешься?
-
> Это связано с построением системы ограниченя доступа.
Не проще ли строить систему ограничения доступа без связи контролов с базой данных, например, в базе данных хранить список ролей, а контролы настраивать в соответствии с прочитанным списком в самой форме ?
-
> Описание форм там хранить собираешься?
Так система же не ограничения доступа к данным, а к контролам на форме :)
-
> Thor (28.03.08 10:00) Form.Controls дает список контролов, расположенных непосредственно на форме Form. В этот список не входят контролы, расположенные на других парентах (панели, GroupBox'ы, фреймы и т.д.). Чтобы получить и их тоже, надо построить рекурсию. Но если все контролы были положены в design-time, то можно сделать проще:
for i := 0 to Form.ComponentCount - 1 do
if Form.Components[i] is TControl then
List.Add(TControl(Form.Components[i]));
-
> Т.е. писать маленькую программку по разбору dfm
Dfm Можно вроде, как грузить прямо в рантайм. Была где-то статья по этой теме, DFM-ы хранились в БД.
ЗЫ: А контролов у тебя много от плохого проектирования софта.
-
> ЗЫ: А контролов у тебя много от плохого проектирования софта.
У меня тоже много. Я что-то делаю не так ?
-
> У меня тоже много. Я что-то делаю не так ?
Много контролов или фрэймов с контролами? Больше трёх кнопок - уже много.
-
tesseract © (28.03.08 15:32) [10]
> Больше трёх кнопок - уже много.
пять в ряде форм. Но дело не в кнопках - у меня много Edit-ов, комбобоксов и так далее...Десятки иногда.
Расскажи мне, что я делаю не так.
-
-
> Десятки это перебор.
То есть, пофиг, независимо от задачи ? :)
-
-
да, и где картинки?
-
> в каком именно месте по этому url сказано, что десятки - > это перебор ?
по русски называеться вроде "кошелёк шеллера". Лень искать URL.
> То есть, пофиг, независимо от задачи ? :)
От задачи зависит конечно. Для избавления придумали такую вещь как визарды и составные элементы управления, в 1с например так выглядит вставка адресов из кладр. Но десятки.......
Я максимум в одном клиент-банке одной конторы 15 видел, которые с лёгкостью превращались в 5.
-
> да, и где картинки?
на flickr :-)
-
-
tesseract © (28.03.08 16:10) [16]
> Я максимум в одном клиент-банке одной конторы 15 видел
Я не пишу клиент-банки.
Зайди в Outlook, в контакты, удивись - 14 полей, 7 кнопок. Скачай MS Money, установи, посчитай контролы - удивись.
|