Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/29: Рейтинг темы: голосов - 29, средняя оценка - 4.83
5 / 5 / 0
Регистрация: 03.03.2011
Сообщений: 39

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

03.03.2011, 01:45. Показов 5838. Ответов 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
Ответ Создать тему
Новые блоги и статьи
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru