Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получить список контролов [D7, WinXP]


Страницы:   1 2 3

Thor ©   (2008-03-28 10:00:00) 

Доброго времени суток!

Подайте идею как получить список контролов которые расположены на форме, для того что бы в дальейшем их перенести в БД. Это связано с построением системы ограниченя доступа.
Т.е. писать маленькую программку по разбору dfm или pas файлов, или может есть другие пути? Не хочеться руками переностить, т.к. форма не одна, а кантролов еще больше.

Спасибо!


tesseract   (2008-03-28 15:56:00) [41]


> Десятки иногда.Расскажи мне, что я делаю не так.


Десятки это перебор.   http://www.useit.com/


Игорь Шевченко   (2008-03-28 15:48:00) [42]

tesseract ©   (28.03.08 15:32) [10]


> Больше трёх кнопок - уже много.


пять в ряде форм. Но дело не в кнопках - у меня много Edit-ов, комбобоксов и так далее...Десятки иногда.

Расскажи мне, что я делаю не так.


tesseract   (2008-03-28 15:32:00) [43]


> У меня тоже много. Я что-то делаю не так ?


Много контролов или фрэймов с контролами?   Больше трёх кнопок - уже много.


Игорь Шевченко   (2008-03-28 14:44:00) [44]


> ЗЫ: А контролов у тебя много от плохого проектирования софта.


У меня тоже много. Я что-то делаю не так ?


tesseract   (2008-03-28 13:59:00) [45]


> Т.е. писать маленькую программку по разбору dfm


Dfm Можно вроде, как грузить прямо в рантайм. Была где-то статья по этой теме, DFM-ы хранились в БД.

ЗЫ: А контролов у тебя много от плохого проектирования софта.


Семеныч   (2008-03-28 10:55:00) [46]

> 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]));


ЮЮ   (2008-03-28 10:43:00) [47]

> Описание форм там хранить собираешься?

Так система же не ограничения доступа к данным, а к контролам на форме :)


Игорь Шевченко   (2008-03-28 10:40:00) [48]


> Это связано с построением системы ограниченя доступа.


Не проще ли строить систему ограничения доступа без связи контролов с базой данных, например, в базе данных хранить список ролей, а контролы настраивать в соответствии с прочитанным списком в самой форме ?


Palladin   (2008-03-28 10:23:00) [49]

Что ты имеешь в виду под фразой "перенести в БД". Описание форм там хранить собираешься?


Thor   (2008-03-28 10:17:00) [50]

Спасибо, но техническую часть я знаю. Меня интересовал сам подход.


Palladin   (2008-03-28 10:03:00) [51]

ControlsCount
Controls[]

большое незачто, заглядывай в справку по чаще...


MBo   (2008-03-28 10:02:00) [52]

Controls[]


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо