| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > обработать 16 текстовых форм |
| Автор: supervladislav 14.9.2012, 15:46 |
| Подскажите , как к данному вопросу можно подойти наиболее рационально ,чтобы не плодить множества if else. Использую Rad studio 2010, есть ли в rad studio 2010 возможность обработки через коллекции скажем всех текстовых эллементов. |
| Автор: Данкинг 14.9.2012, 15:53 |
| Что такое "текстовая форма" и как её требуется обработать? |
| Автор: supervladislav 14.9.2012, 16:52 | ||
Данкинг, за неделю войны с delphi 7 я уже забыл для чего его устанавливал
как обработать много таких вот текстовых полей , ой забыл как они называются не во всём ещё разобрался в RAd studio. |
| Автор: supervladislav 14.9.2012, 17:21 | ||
Данкинг, хотелось бы сделать что-то вроде вот такого, но не ясно на первых порах как вставить i в выражение.
|
| Автор: Данкинг 14.9.2012, 18:03 |
| supervladislav, а разве по FindComponent ты вопроса не задавал где-то? Если задавал - то поиск и обращение к компонентам формы осуществляется через него. |
| Автор: supervladislav 14.9.2012, 18:35 |
| Данкинг, FindComponent вы имеете ввиду функцию языка delphi 2010? |
| Автор: Данкинг 14.9.2012, 18:39 |
Да она и в D7 есть. |
| Автор: supervladislav 14.9.2012, 18:40 |
| Данкинг, чтобы темы не плодить ,скажите какой книгой по delphi 2010 целесообразднее пользоваться? |
| Автор: Данкинг 14.9.2012, 18:41 | ||
Не скажу, я уже давно учебников не покупал. |
| Автор: supervladislav 14.9.2012, 18:44 |
| Данкинг, читал чтобы в курс дела войти вот эту книгу Основы программирования Delphi 7.pdf Очень просто ,но крайне сжато. |
| Автор: supervladislav 15.9.2012, 08:33 | ||
| Данкинг, скажите я не очень понимаю как работает данная продцедура . Почитал в документации про FindComponent и посмотрел примеры. Вот один ниже присудствует.
Я правильно понимаю ,что найдуться все TComboBox с названием timedelay. |
| Автор: Данкинг 15.9.2012, 10:09 |
| Ну да, по идее, попробуй на своей программе. |
| Автор: supervladislav 15.9.2012, 11:34 |
| Данкинг, я имею ввиду ,что названия то уникальны ,в названии нехватает цифры. timedelay1 timedelay2 timedelay3 timedelay4 Добавлено через 4 минуты и 30 секунд Продцедура FindComponent так ищет или подругому. Вобще не очень просто понятно , если продцедура ищет подругому , зачем она вобще нужна. |
| Автор: supervladislav 15.9.2012, 21:30 | ||
| Вот этот вариант то ,что надо. но не понятно , как мне считать то ,что записано в поле timedelay,что после цикла должно идти?
Данкинг, я х |
| Автор: Rennigth 15.9.2012, 22:05 | ||
supervladislav, весь пост не читал, но как понял ты добиваешься что-то вроде этого?
Но!!! Если тебе это как тренировка, то ладно. Но в реальных проектах старайся не использовать такой подход. Навскидку минусы этого подхода: - При изменении имени комбика все летит к черту. - FindComponent довольно "тяжелая функция". - да и много можно еще придумать. |
| Автор: supervladislav 15.9.2012, 22:08 |
| Rennigth, а какой альтернативный вариант |
| Автор: Rennigth 15.9.2012, 22:17 |
А какова цель-то вообще? Тебе надо как-то по умолчанию задать текстовое значение во всех контролах на форме? нужны конкретно ComboBox-ы? |
| Автор: supervladislav 15.9.2012, 22:20 | ||
Rennigth,
Скажите я просто не совсем понимаю ,то что выше разве оно не типах должнобыть. Добавлено через 6 минут и 50 секунд Rennigth,мне нужно собрать информацию с них. |
| Автор: Rennigth 15.9.2012, 22:30 | ||||
Нет, это локальные переменные для хранения объектов которые ищем. В данном случае так правильнее делать если не хочешь нарваться на "AccessViolation" или "Invalid Type Cast", т.к. FindComponent может вернуть nil(т.е. ничего) или может вернуть нам не ComboBox, а что-нибудь другое с именем "timedelay1-16". Добавлено @ 22:32 Кстати, я в примере накосячил(писал просто прям тут)
|
| Автор: supervladislav 15.9.2012, 22:34 | ||||||
Rennigth, мой вопрос вам почему вы не сделали вот так
Или речь идёт уже о каких то переменных где есть какието значения , я не могу понять. Добавлено через 3 минуты и 54 секунды Rennigth, минутку я кажется догнал , в данную переменную просто записывается указатель
Но чем же такой приём удобнее? Да и вот тут ,что за необъявленная переменная ltd
|
| Автор: Rennigth 15.9.2012, 22:39 |
| supervladislav, Да, это переменные в которые мы временно запоминаем найденные функцией FindComponent компоненты. Добавлено через 2 минуты и 34 секунды Сорь, подправил, я просто без делфей... |
| Автор: supervladislav 15.9.2012, 22:42 |
| Rennigth,а что всётаки значит ltd. |
| Автор: Rennigth 15.9.2012, 22:42 | ||
Добавлено через 35 секунд Это я описался Добавлено через 3 минуты и 4 секунды Да потому что мы можем и существование проверить, и тип того что мы нашли проверить, и делать с нашим комбиком что угодно не вызывая постоянно FindComponent. |
| Автор: northener 16.9.2012, 01:03 | ||
Предложу автору почитать где-нибудь о двух свойствах-списках класса TForm. Components и Controls. Возможно они (или один из них) и является той самой "коллекцией", которую он ищет "вслепую", не желая читать учебник по Дельфи. |
| Автор: supervladislav 16.9.2012, 16:39 |
| northener, я его читаю но назначения некотрых классов мне пока непонятны. |
| Автор: bems 16.9.2012, 18:45 |
| Супервладиславу не помогают устные предупреждения об использовании ссылки "репорт" Может быть читательский билет поможет |
| Автор: northener 17.9.2012, 00:40 | ||
Ну так спрашивай о том, что непонятно в учебнике. Но внимательно слушай/читай предупреждения модераторов! |
| Автор: supervladislav 20.9.2012, 20:02 | ||||
| northener, ещё один вопрос по коду. Rennigth, вы немного ошиблись помойму не TabIndex ,а itemIndex. Не очень понятно далее как действовать. Повторюс нужно считать всё что есть в 16 формах последовательно в массив. Я не очень понимаю как мне получить информацию из текстовых полей?
|
| Автор: northener 21.9.2012, 01:28 |
Какой вопрос и по какому коду? P.S. Но если ты ищешь комбобоксы, то лучше устанавливай им ItemIndex, а не Text. P.P.S. А ещё лучше озвучь наконец задачу, которую ты решаешь. |
| Автор: supervladislav 21.9.2012, 03:22 | ||
| northener, Я по ходу дела перепутал не комбобокс а Tedit. Delphi 2010 не очень удобно расположена панель инструментов из-за этого путаница. Спасибо всем ,кто помогал в этом вопросе. Вот ,что я хотел.
|