Главная страница
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]


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

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


 
Kolan ©   (2008-03-28 16:58) [41]

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

Значит таки пользуется билетом пасажир?


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

tesseract ©   (28.03.08 16:56) [39]

Я к чему - все таки прикладная область она накладывает некоторый отпечаток на способы решения задач


 
Kolan ©   (2008-03-28 16:59) [43]

> [35] tesseract ©   (28.03.08 16:48)

То, что ты сейчас на коленке за 3 минут пытаешься решить такию супер сложную проблемму — тоже ошибка.


 
tesseract ©   (2008-03-28 17:05) [44]


> То, что ты сейчас на коленке за 3 минут пытаешься решить
> такию супер сложную проблемму — тоже ошибка.


Я её не решаю, я просто сказал что информацию для билета можно вводить постранично. В любом случае ни одна авиакомпания от стандартов оформления авиабилетов не откажеться, хоть её реж. Там строчку пониже поставить - сотня миллионов обойдёться.


> Я к чему - все таки прикладная область она накладывает некоторый
> отпечаток на способы решения задач


Конечно, но общие принципы всё-таки сходи. Я недавно для тачскрина рисовал интерфейс - столкнулся с кучей проблем.


 
Kolan ©   (2008-03-28 17:06) [45]

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


 
tesseract ©   (2008-03-28 17:07) [46]


> Покажи что нарисовал.


Все экраны ? Смотри Iphone - примерно похоже :-) Только мультитача конечно нет.


 
Kolan ©   (2008-03-28 17:11) [47]

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


 
Kolan ©   (2008-03-28 17:12) [48]

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


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

tesseract ©   (28.03.08 17:05) [44]


> Я её не решаю, я просто сказал что информацию для билета
> можно вводить постранично


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

Ты когда-нибудь анкеты заполнял ?
Тебя не удивлял тот факт, что большинство вопросов занимают весь лист, а не так, что взял книжку, написал на первой странице фамилию, имя, отчество, перевернул страницу еще 3-5 пунктов написал и так далее.


 
tesseract ©   (2008-03-28 20:04) [50]


>  А уж тем более,
>  при ручном вводе.


Я очень плотно работаю с ручным вводом. 1с знаете ли. Там по 100-300 строк на экране не предел. Проверка ИМХО нужна именно погрупповая, потому, как у опеатора за экраном,  после 6 часовой смены IQ и внимательность соотвествует обезъяннему.


> чтобы вся информация была перед глазами.


Это не значит, что она должна быть доступна при редактировании.  Чем больше редактируемых полей, тем чаще оператор будет ошибаться вводом. Я на себе такое испытал под неким софтом некой крупной конторы,   там была куча Edit немерянная и ультранастраиваемая функциональность. Как и всё ультра не работала, босс послал меня на ней посчитать. В результатае был написан софт с 3-ми edit (активировались по вызову)  который позволял считать в десятки раз быстрее !!! если раньше скалд инвентаризировался 1-1,5 суток , теперь это происходит за 2 часа. Персонал может работать с приложением, даже если его первый раз увидел.


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

tesseract ©   (28.03.08 20:04) [50]


> 1с знаете ли.


не знаю.


>  Проверка ИМХО нужна именно погрупповая, потому, как у опеатора
> за экраном,  после 6 часовой смены IQ и внимательность соотвествует
> обезъяннему.


Ну да. И ему крайне желательно, чтобы то, что у него не совпало на экране соответствовало тому, что он видит глазами. Не листая, а по совокупности. Потому как при вводе он (оператор) на экран не смотрит, а смотрит на оригинал. Чем меньше он будет переключаться промеж страниц, тем быстрее введет. Промежду прочим, исследования эргономичности - они тоже иногда проводятся...


> Это не значит, что она должна быть доступна при редактировании.
>   Чем больше редактируемых полей, тем чаще оператор будет
> ошибаться вводом


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


 
tesseract ©   (2008-03-28 20:15) [52]


> А поскольку оплачиваются они сдельно, то в вводе они кровно
> заинтересованы. В правильном вводе.


Текучка кадров значит меньше, чем у меня. Вообще флуд, тему закрыть или перенести в прочее :-)



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

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

Наверх




Память: 0.61 MB
Время: 0.019 c
2-1206948144
Armond
2008-03-31 11:22
2008.04.27
SQL


11-1188218102
Compiler
2007-08-27 16:35
2008.04.27
KOLMHXPStyle


2-1206649738
Franzy
2008-03-27 23:28
2008.04.27
Как получить параметры...


2-1206896375
Левон
2008-03-30 20:59
2008.04.27
Работа программы Делфи


15-1205496072
Riply
2008-03-14 15:01
2008.04.27
Наведение порчи на трояна :)