5 / 5 / 0
Регистрация: 03.03.2011
Сообщений: 39

использование FindComponent в циклах для считывания/присвоения параметров существующих объектов

03.03.2011, 01:45. Показов 5896. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помочь разобраться как использовать FindComponent для обработки свойств существующих объектов в С++ Buider 2010

Задача: вывести из большого количества Edit'ов (TEdit *Edit) сдержимое их поля Text (Editn->Text) в файл
Дано: 42 объекта класса TEdit (соответcтвенно от Edit1 к Edit42)
а вывести надо примерно так:
C++
1
2
for (i=1;i<43;i++)
{out<<Editi->Text.t_str()<<endl;}
объясните пожалуйста как здесь использовать FindComponent.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.03.2011, 01:45
Ответы с готовыми решениями:

Можно ли и целесообразно ли использовать лямбду для присвоения значений полям массива объектов?
Хочу использовать лямбду для присвоения значений полям массива объектов(такое что :- int size = 0; cin &gt;&gt; size; Children*ch=new...

Программа для считывания параметров привода через PROFIdrive
Есть люди, которые могут подсказать информацию о том, как на Delphi написать простую программу для считывания параметров привода через...

использование прерывания 21h для считывания с клавиатуры
Разработать, написать и отладить программу управления перемещением символа (например, &quot;*&quot;) в пределах заданного на экране окна.

37
5 / 5 / 0
Регистрация: 03.03.2011
Сообщений: 39
03.03.2011, 04:36  [ТС]
Студворк — интернет-сервис помощи студентам
не блин как тока пытаюсь обратится к свойству компонента в if он поднимает exeption... без разницы что к Tag что к Name
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.03.2011, 04:39
C++
1
2
3
4
for(int i = 0; i < ComponentCount; i++) {
TEdit* edit;
edit = dynamic_cast<TEdit*>(Components[i]);
if (edit) {out<< ...}
я бы все же попробовал так
0
5 / 5 / 0
Регистрация: 03.03.2011
Сообщений: 39
03.03.2011, 04:42  [ТС]
а вообще где у объекта хранится тот номер по которому бегает ComponentCount? или такого нет и в ComponentCount просто количество объектов?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.03.2011, 04:46
наверное,
просто количество объектов
Добавлено через 1 минуту
свойства, которые характеризуют элемент управления, поскольку, объект может и не быть оным, это имя, таг, цвет, ширина, высота и пр.
0
5 / 5 / 0
Регистрация: 03.03.2011
Сообщений: 39
03.03.2011, 04:47  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
C++
1
2
3
4
for(int i = 0; i < ComponentCount; i++) {
TEdit* edit;
edit = dynamic_cast<TEdit*>(Components[i]);
if (edit) {out<< ...}
я бы все же попробовал так
ну так он мне и выдаст все 42 Edit'а..

я конечно могу ограничить количество циклов через if (ciclecount>7) {break;} но это не вариант потому как мне потом необходимо выводить в другом блоке следующие Edit8 - Edit14...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.03.2011, 04:50
я имел ввиду
C++
1
if (edit) {out<< ...}
без Name
0
5 / 5 / 0
Регистрация: 03.03.2011
Сообщений: 39
03.03.2011, 04:53  [ТС]
тык а функция FindComponent то тут никак не поможет? просто мне препод сказал что через неё как то можно....

Добавлено через 1 минуту
Цитата Сообщение от LK Посмотреть сообщение
я имел ввиду
C++
1
if (edit) {out<< ...}
без Name
ну так и будет без name он переберет все 42 Edit'а
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.03.2011, 05:00
так в чем дело ? пробуйте
C++
1
if (FindComponent(Edit->Name))
0
5 / 5 / 0
Регистрация: 03.03.2011
Сообщений: 39
03.03.2011, 05:11  [ТС]
нет каждый раз когда пытаюсь считать свойство name или tag поднемает exception... в чем проблема неясно...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.03.2011, 05:12
ты хоть текст исключения привести можешь?
0
5 / 5 / 0
Регистрация: 03.03.2011
Сообщений: 39
03.03.2011, 05:14  [ТС]
Access violation at adress 500C4058 in module 'rtl140.bpl'. Read of address 00000008
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.03.2011, 05:18
а так
C++
1
2
3
4
TEdit *edit = (TEdit *)FindComponent("Edit1");
  if (edit)
// or
  if (edit!=0)
1
5 / 5 / 0
Регистрация: 03.03.2011
Сообщений: 39
03.03.2011, 05:31  [ТС]
C++
1
2
3
4
5
6
7
8
9
    out<<"\n<td>\n<ol>"<<endl;
    for (j = 0; j < 8; j++)
        {
        TEdit *edit = (TEdit *)FindComponent("Edit"+IntToStr(j));
        if (edit)
        {out<<"<li>"<<edit->Text.t_str()<<"</li>"<<endl;}
        }
    out<<"</ol>\n</td>";
    }
вот так работает фухх)) разобрались, спасибо большое за уделенное время
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.03.2011, 05:32
и вам спасибо...
0
5 / 5 / 0
Регистрация: 03.03.2011
Сообщений: 39
05.03.2011, 02:13  [ТС]
C++
1
TEdit *edit = (TEdit *)FindComponent("Edit"+IntToStr(j));
кстати LK а не могли бы вы объяснить мне эту строчку?
я так понимаю что TEdit *edit = (TEdit *) - вызов конструктора класса Tedit для объекта edit а вот суть параметров разобрать не могу объясните плиз....
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
05.03.2011, 02:24
http://translated.by/you/a-beg... -ru/trans/
http://allk.ru/book/10/89.html
с утра экономим на пиве и копим на книгу уважаемого Стефана Р. Дэвиса .
0
5 / 5 / 0
Регистрация: 03.03.2011
Сообщений: 39
05.03.2011, 02:34  [ТС]
т.е. получается что это указатель на Edit c именем возвращаемым FindComponent?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
05.03.2011, 05:05
как то так
http://shatalov.su/cpp_primer/pointer.php
http://window.edu.ru/window/li... 1&p_page=9
http://window.edu.ru/window_ca... stu195.pdf
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.03.2011, 05:05

Использование CURL для считывания информации из дивов
Хочу попробовать написать самостоятельно скрипт, ибо очень нужен, который будет считывать информацию со страницы, которую я буду вводить...

Создание объектов на основе уже существующих
Добрый день! Есть список объектов List&lt;classA&gt; lst = new List&lt;classA&gt;(); В котором хранятся список его наследников с со своими...

Применение циклов для расчета параметров объектов на С++
Здравствуйте! Помогите, пожалуйста, в решении такой проблемы. Написал простенькую программу на С++, в главной функции рассчитываются...

Можно ли как-то получить коллекцию всех существующих объектов класса?
Добрый вечер. Предположим я насоздавал объектов, сколько не известно. Предположим они создаются по нажатию кнопки. Есть ли способ...

Использование параметров для запроса в MYSQL
Добрый день. Подскажите что не правильно делаю... Мануал Mysql читал, делал по нему, но увы с параметрами не получилось... Проблема...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Опции темы

Новые блоги и статьи
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru