| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Задание имени объекта с помощью переменной |
| Автор: pankerstein 23.12.2006, 17:47 | ||
| Доброго времени суток! У меня такой вопрос: Допустим у меня на форме 10... и т.д. объектов одного типа (допустим TEdit). Так вот текст из них у меня помещается в структуру, и иногда надоедает писать для 10-ти полей, N строк кода:
Конечно хотелось бы сделать это в цикле, но для этого вместо 1,2,3,4 и т.д. должно быть i(что очевидно Т.е. задать имя Tedit, как edit+i. В скриптовом языке AS2.0,3.0 было так ["строка"+i].метод/свойство, помоему даже гдето ещё видел, а вот в делфи, сколько ни бился ничего не нашёл Помогите кто чем может! зараннее спосибо... п.с. Прошу не винить меня в том, что я линивый, ("подумаешь 10 строк кода вместо цыкла"- скажите вы), но программа которую я пишу работает с документами,которые собственно различаются колличеством этих самых полей вода. В одном 5 в другом 15... Видов документов у меня около 20, а теперь представьте, в каждом вот так писать, кучу строк. А то задал в документе i, в каждом своё, и общую процедуру для всех с параметром i. омоему оправданно |
| Автор: anwe 23.12.2006, 18:57 | ||
Так что ли:
|
| Автор: Beltar 23.12.2006, 19:35 | ||
Компоненты лежат на чем-нибудь вроде панели или формы, и можно перебрать их используя ее свойство Controls, оно у любого наследника TWinControl есть.
|
| Автор: pankerstein 23.12.2006, 20:27 |
| Спасибо !!! разобрался !: ))))))))))) |
| Автор: pankerstein 23.12.2006, 21:11 | ||||
Думал по началу то что надо.. однако всё равно грамостко получается.. мне нужна анология как если бы на месте controls[i].name стояло controls[i].text, однако понятное дело делфи пишет, что такого свойства ему не объявили... to *anwe... не получается у меня так как ты подсказал.. может потому, что компоненты у меня на дочерней форме, а вызов идет с главной...ошибку не выдаёт, но когда хочу посмотреть что там записалось из edit в record то там пусто |
| Автор: Beltar 23.12.2006, 22:48 |
| Тут по-любому громоздко получится. Но если у тебя компоненты лежат на панели, или в GroupBox'е, (что еще и красиво), и все одинаковые, то код упрощается, т. к. можно сразу без проверки класса делать им, например. Name:=(WinContol.Controls[i] as TEdit).Name; если нужно получить имя. Дальше можешь над ним всяко изгаляться. |
| Автор: pankerstein 23.12.2006, 23:54 |
beltar! rulez!! То что нужно! работает! и как надо!!!! Тема закрыта! |
| Автор: Beltar 24.12.2006, 15:12 |
| Добавлю, что можно и не совокупляться с именами, выдирая из них номер, а раздать эдитам теги и получать их. |