Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.04.27;
Скачать: CL | DM;

Вниз

Получить список контролов   Найти похожие ветки 

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

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

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

Спасибо!


 
MBo ©   (2008-03-28 10:02) [1]

Controls[]


 
Palladin ©   (2008-03-28 10:03) [2]

ControlsCount
Controls[]

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


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

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


 
Palladin ©   (2008-03-28 10:23) [4]

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


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


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


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


 
ЮЮ ©   (2008-03-28 10:43) [6]

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

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


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

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


 
tesseract ©   (2008-03-28 13:59) [8]


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


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

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


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


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


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


 
tesseract ©   (2008-03-28 15:32) [10]


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


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


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

tesseract ©   (28.03.08 15:32) [10]


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


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

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


 
tesseract ©   (2008-03-28 15:56) [12]


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


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


 
Игорь Шевченко ©   (2008-03-28 16:02) [13]


> Десятки это перебор.


То есть, пофиг, независимо от задачи ? :)


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


>  http://www.useit.com/


в каком именно месте по этому url сказано, что десятки - это перебор ?


 
easy ©   (2008-03-28 16:07) [15]

да, и где картинки?


 
tesseract ©   (2008-03-28 16:10) [16]


> в каком именно месте по этому url сказано, что десятки -
>  это перебор ?


по русски называеться вроде "кошелёк шеллера".  Лень искать URL.


> То есть, пофиг, независимо от задачи ? :)


От задачи зависит конечно. Для избавления придумали такую вещь как визарды и составные элементы управления, в 1с например так выглядит вставка адресов из кладр. Но десятки.......

Я максимум в одном клиент-банке одной конторы 15 видел, которые с лёгкостью превращались в 5.


 
tesseract ©   (2008-03-28 16:11) [17]


> да, и где картинки?


на flickr :-)


 
tesseract ©   (2008-03-28 16:17) [18]

и кстати вот : http://www.yaplakal.com/uploads/post-3-12054781783773.jpg


 
Игорь Шевченко ©   (2008-03-28 16:17) [19]

tesseract ©   (28.03.08 16:10) [16]


> Я максимум в одном клиент-банке одной конторы 15 видел


Я не пишу клиент-банки.

Зайди в Outlook, в контакты, удивись - 14 полей, 7 кнопок.
Скачай MS Money, установи, посчитай контролы -  удивись.


 
Игорь Шевченко ©   (2008-03-28 16:19) [20]

tesseract ©   (28.03.08 16:17) [18]


> и кстати вот :


На свете кроме бухгалтерии есть еще масса увлекательных предметных областей.


 
Игорь Шевченко ©   (2008-03-28 16:19) [21]

Удалено модератором
Примечание: Дубль


 
tesseract ©   (2008-03-28 16:21) [22]


> Зайди в Outlook, в контакты, удивись - 14 полей, 7 кнопок.
> Скачай MS Money, установи, посчитай контролы -  удивись.
>


Я и удивляюсь. Считаю это неправильным. Например, посмотри, как "Пуск" сделан в SUSE 10.3 - идеально просто сделан, приятно работать.


 
Игорь Шевченко ©   (2008-03-28 16:25) [23]

tesseract ©   (28.03.08 16:21) [22]


> Я и удивляюсь. Считаю это неправильным


А удобно, знаешь ли :)

В Suse я, извини, не работаю.


 
tesseract ©   (2008-03-28 16:28) [24]


> А удобно, знаешь ли :)


Посчитал, 13 edit.  Не десятки.


 
Игорь Шевченко ©   (2008-03-28 16:30) [25]

tesseract ©   (28.03.08 16:28) [24]

Осталось посчитать в MS Money. Потом слетать на самолете, и изучить авиабилет :)


 
Kolan ©   (2008-03-28 16:33) [26]

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

Скрины покажи, тогда можно будет сказать что не так, или что все так&#133


 
tesseract ©   (2008-03-28 16:34) [27]


> Потом слетать на самолете, и изучить авиабилет :)


Мне военника хватает. Занимательное чтиво.

Авиабитле вроде как разбит по категориям и страничкам. Кстати тоже криво сделан - реально нужная пассажиру информация запрятана в небалуйся месте. А всякие кода поездов и итд и тп на самом видном.


 
tesseract ©   (2008-03-28 16:34) [28]


> Скрины покажи, тогда можно будет сказать что не так, или
> что все так…


он же дал скрины :-)

> Игорь Шевченко ©   (28.03.08 16:30) [25]


Я про поездовые, давно не летал :-)


 
Kolan ©   (2008-03-28 16:36) [29]

> он же дал скрины :-)

Где?


 
tesseract ©   (2008-03-28 16:36) [30]


> Осталось посчитать в MS Money. Потом слетать на самолете,
>  и изучить авиабилет :)


 
Kolan ©   (2008-03-28 16:37) [31]

Так это разве его скрины?


 
Игорь Шевченко ©   (2008-03-28 16:38) [32]

tesseract ©   (28.03.08 16:34) [27]


> Кстати тоже криво сделан - реально нужная пассажиру информация
> запрятана в небалуйся месте


Ну да, Барч вообще конкретный ламер.


> Авиабитле вроде как разбит по категориям и страничкам


По категориям разбит. По страничкам - это копии под копирку.

Но если какой-то дизайнер предложит информацию с него вводить по страничкам - его будут бить долго и возможно ногами.


 
Kolan ©   (2008-03-28 16:40) [33]

> Но если какой-то дизайнер предложит информацию с него вводить
> по страничкам — его будут бить долго и возможно ногами.

А разве ЖД билет не так сделан? Там тетка странички загибает/отрывает и печатает на спец принтере&#133


 
Игорь Шевченко ©   (2008-03-28 16:43) [34]


> Кстати тоже криво сделан - реально нужная пассажиру информация
> запрятана в небалуйся месте


И еще, чтобы ты был в курсе - авиабилет он вообще не для пассажира :))


 
tesseract ©   (2008-03-28 16:48) [35]


> его будут бить долго и возможно ногами.


Информацию с него или на него ?

Начнём : Билет содержит : Информацию о пассажире, для пассажира  и для персонала.

Операции 1 : Вводим данные о пассажире.
Операция 2 : Вводим данные о рейсе ( данные уже должны быть получены до того как билет начали вводить).
Операция 3 : На печать выводиться все данные, в том числе и скрытые, которые в принципе подставляються автоматически  - из информации о рейсе.

ЗЫ :  Информацию "время вылета, номер рейса, место" выводим в правом верхнем углу здоровенным шрифтом.


 
Kolan ©   (2008-03-28 16:50) [36]

Удалено модератором


 
tesseract ©   (2008-03-28 16:52) [37]

Удалено модератором
Примечание: И не цитируем


 
Игорь Шевченко ©   (2008-03-28 16:53) [38]

tesseract ©   (28.03.08 16:48) [35]


> Информацию с него или на него ?


А неважно.


> Билет содержит : Информацию о пассажире, для пассажира  
> и для персонала.


не. не для пассажира. пассажиру надо только его иметь при себе. куда и когда лететь - оно по центру написано - не промахнешься.


> Операции 1 : Вводим данные о пассажире.
> Операция 2 : Вводим данные о рейсе ( данные уже должны быть
> получены до того как билет начали вводить).
> Операция 3 : На печать выводиться все данные, в том числе
> и скрытые, которые в принципе подставляються автоматически
>  - из информации о рейсе.


:) "Я тут ща всех автоматизирую"


 
tesseract ©   (2008-03-28 16:56) [39]


> :) "Я тут ща всех автоматизирую"


Профессиональная привычка.
У меня много очень "подготовленного" персонала, который кушает валидол при смещении кнопки на пару пикселей. И умудряеться прорвать оборону из 4-х проверок. Есть подозрения,что они дейсвует стаей, созваниваясь в тайне. Сегодня такое отчудили, Андрей нам вдвоём с админом объяснял минут 40 пока до нас дошло... Силён в них дух упорства :-)


 
Германн ©   (2008-03-28 16:56) [40]


> :) "Я тут ща всех автоматизирую"
>

А Бритиш Эйрвейз случайно не ты автоматизировал? :)



Страницы: 1 2 вся ветка

Текущий архив: 2008.04.27;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.015 c
2-1206993864
Дмитрий
2008-04-01 00:04
2008.04.27
Палитра системы


8-1178911877
Frozen
2007-05-11 23:31
2008.04.27
работа с cddb


2-1206707430
asdf2
2008-03-28 15:30
2008.04.27
Есть ли функция, определяющая номер квартала, по дате?


15-1205463592
Slider007
2008-03-14 05:59
2008.04.27
С днем рождения ! 14 марта 2008 пятница


2-1207259170
knopka
2008-04-04 01:46
2008.04.27
Объединение ячеек в DBGrig