![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получить список контролов [D7, WinXP]
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[]