-
Доброго времени суток!
Подайте идею как получить список контролов которые расположены на форме, для того что бы в дальейшем их перенести в БД. Это связано с построением системы ограниченя доступа.
Т.е. писать маленькую программку по разбору 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, установи, посчитай контролы - удивись.
-
tesseract © (28.03.08 16:17) [18]
> и кстати вот :
На свете кроме бухгалтерии есть еще масса увлекательных предметных областей.
-
Удалено модератором
Примечание: Дубль
-
> Зайди в Outlook, в контакты, удивись - 14 полей, 7 кнопок.
> Скачай MS Money, установи, посчитай контролы - удивись.
>
Я и удивляюсь. Считаю это неправильным. Например, посмотри, как "Пуск" сделан в SUSE 10.3 - идеально просто сделан, приятно работать.
-
tesseract © (28.03.08 16:21) [22]
> Я и удивляюсь. Считаю это неправильным
А удобно, знаешь ли :)
В Suse я, извини, не работаю.
-
> А удобно, знаешь ли :)
Посчитал, 13 edit. Не десятки.
-
tesseract © (28.03.08 16:28) [24]
Осталось посчитать в MS Money. Потом слетать на самолете, и изучить авиабилет :)
-
> Расскажи мне, что я делаю не так.
Скрины покажи, тогда можно будет сказать что не так, или что все так
-
> Потом слетать на самолете, и изучить авиабилет :)
Мне военника хватает. Занимательное чтиво.
Авиабитле вроде как разбит по категориям и страничкам. Кстати тоже криво сделан - реально нужная пассажиру информация запрятана в небалуйся месте. А всякие кода поездов и итд и тп на самом видном.
-
> Скрины покажи, тогда можно будет сказать что не так, или
> что все так…
он же дал скрины :-)
> Игорь Шевченко © (28.03.08 16:30) [25]
Я про поездовые, давно не летал :-)
-
> он же дал скрины :-)
Где?
-
> Осталось посчитать в MS Money. Потом слетать на самолете,
> и изучить авиабилет :)
-
Так это разве его скрины?
-
tesseract © (28.03.08 16:34) [27]
> Кстати тоже криво сделан - реально нужная пассажиру информация
> запрятана в небалуйся месте
Ну да, Барч вообще конкретный ламер.
> Авиабитле вроде как разбит по категориям и страничкам
По категориям разбит. По страничкам - это копии под копирку.
Но если какой-то дизайнер предложит информацию с него вводить по страничкам - его будут бить долго и возможно ногами.
-
> Но если какой-то дизайнер предложит информацию с него вводить
> по страничкам его будут бить долго и возможно ногами.
А разве ЖД билет не так сделан? Там тетка странички загибает/отрывает и печатает на спец принтере
-
> Кстати тоже криво сделан - реально нужная пассажиру информация
> запрятана в небалуйся месте
И еще, чтобы ты был в курсе - авиабилет он вообще не для пассажира :))
-
> его будут бить долго и возможно ногами.
Информацию с него или на него ?
Начнём : Билет содержит : Информацию о пассажире, для пассажира и для персонала.
Операции 1 : Вводим данные о пассажире.
Операция 2 : Вводим данные о рейсе ( данные уже должны быть получены до того как билет начали вводить).
Операция 3 : На печать выводиться все данные, в том числе и скрытые, которые в принципе подставляються автоматически - из информации о рейсе.
ЗЫ : Информацию "время вылета, номер рейса, место" выводим в правом верхнем углу здоровенным шрифтом.
-
Удалено модератором
-
Удалено модератором
Примечание: И не цитируем
-
tesseract © (28.03.08 16:48) [35]
> Информацию с него или на него ?
А неважно.
> Билет содержит : Информацию о пассажире, для пассажира
> и для персонала.
не. не для пассажира. пассажиру надо только его иметь при себе. куда и когда лететь - оно по центру написано - не промахнешься.
> Операции 1 : Вводим данные о пассажире.
> Операция 2 : Вводим данные о рейсе ( данные уже должны быть
> получены до того как билет начали вводить).
> Операция 3 : На печать выводиться все данные, в том числе
> и скрытые, которые в принципе подставляються автоматически
> - из информации о рейсе.
:) "Я тут ща всех автоматизирую"
-
> :) "Я тут ща всех автоматизирую"
Профессиональная привычка.
У меня много очень "подготовленного" персонала, который кушает валидол при смещении кнопки на пару пикселей. И умудряеться прорвать оборону из 4-х проверок. Есть подозрения,что они дейсвует стаей, созваниваясь в тайне. Сегодня такое отчудили, Андрей нам вдвоём с админом объяснял минут 40 пока до нас дошло... Силён в них дух упорства :-)
-
> :) "Я тут ща всех автоматизирую"
>
А Бритиш Эйрвейз случайно не ты автоматизировал? :)
-
> куда и когда лететь оно по центру написано не промахнешься.
Значит таки пользуется билетом пасажир?
-
tesseract © (28.03.08 16:56) [39]
Я к чему - все таки прикладная область она накладывает некоторый отпечаток на способы решения задач
-
> [35] tesseract © (28.03.08 16:48)
То, что ты сейчас на коленке за 3 минут пытаешься решить такию супер сложную проблемму тоже ошибка.
-
> То, что ты сейчас на коленке за 3 минут пытаешься решить
> такию супер сложную проблемму — тоже ошибка.
Я её не решаю, я просто сказал что информацию для билета можно вводить постранично. В любом случае ни одна авиакомпания от стандартов оформления авиабилетов не откажеться, хоть её реж. Там строчку пониже поставить - сотня миллионов обойдёться.
> Я к чему - все таки прикладная область она накладывает некоторый
> отпечаток на способы решения задач
Конечно, но общие принципы всё-таки сходи. Я недавно для тачскрина рисовал интерфейс - столкнулся с кучей проблем.
-
Удалено модератором
-
> Покажи что нарисовал.
Все экраны ? Смотри Iphone - примерно похоже :-) Только мультитача конечно нет.
-
Удалено модератором
-
Удалено модератором
-
tesseract © (28.03.08 17:05) [44]
> Я её не решаю, я просто сказал что информацию для билета
> можно вводить постранично
Неудобно постранично. Ты пойми один простой вещь - в ряде задач крайне желательно, чтобы вся информация была перед глазами. А уж тем более, при ручном вводе.
Ты когда-нибудь анкеты заполнял ?
Тебя не удивлял тот факт, что большинство вопросов занимают весь лист, а не так, что взял книжку, написал на первой странице фамилию, имя, отчество, перевернул страницу еще 3-5 пунктов написал и так далее.
-
> А уж тем более,
> при ручном вводе.
Я очень плотно работаю с ручным вводом. 1с знаете ли. Там по 100-300 строк на экране не предел. Проверка ИМХО нужна именно погрупповая, потому, как у опеатора за экраном, после 6 часовой смены IQ и внимательность соотвествует обезъяннему.
> чтобы вся информация была перед глазами.
Это не значит, что она должна быть доступна при редактировании. Чем больше редактируемых полей, тем чаще оператор будет ошибаться вводом. Я на себе такое испытал под неким софтом некой крупной конторы, там была куча Edit немерянная и ультранастраиваемая функциональность. Как и всё ультра не работала, босс послал меня на ней посчитать. В результатае был написан софт с 3-ми edit (активировались по вызову) который позволял считать в десятки раз быстрее !!! если раньше скалд инвентаризировался 1-1,5 суток , теперь это происходит за 2 часа. Персонал может работать с приложением, даже если его первый раз увидел.
-
tesseract © (28.03.08 20:04) [50]
> 1с знаете ли.
не знаю.
> Проверка ИМХО нужна именно погрупповая, потому, как у опеатора
> за экраном, после 6 часовой смены IQ и внимательность соотвествует
> обезъяннему.
Ну да. И ему крайне желательно, чтобы то, что у него не совпало на экране соответствовало тому, что он видит глазами. Не листая, а по совокупности. Потому как при вводе он (оператор) на экран не смотрит, а смотрит на оригинал. Чем меньше он будет переключаться промеж страниц, тем быстрее введет. Промежду прочим, исследования эргономичности - они тоже иногда проводятся...
> Это не значит, что она должна быть доступна при редактировании.
> Чем больше редактируемых полей, тем чаще оператор будет
> ошибаться вводом
Нифига. Оператор на экран не смотрит. Я, знаете ли, несколько лет имел счастье наблюдать как они работают в Аэрофлоте. Они при вводе еще и жизненные проблемы обсуждать успевают и довольно бурно.
А поскольку оплачиваются они сдельно, то в вводе они кровно заинтересованы. В правильном вводе.
-
> А поскольку оплачиваются они сдельно, то в вводе они кровно
> заинтересованы. В правильном вводе.
Текучка кадров значит меньше, чем у меня. Вообще флуд, тему закрыть или перенести в прочее :-)