wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732

Динамически создать компоненты

21.08.2011, 17:04. Показов 3084. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здарсте. Нужно динамически создать ну допустим 10 TGauge. Хотя количество заранее не известно. Собственно как это сделать нормально? А то у меня что то это не выходит. Элементы должны иметь имена типа: имя1 имя2, имя3 и т.д., то есть если например цикл от 1 до 10, то имена должны иметь в конце цифры от 1 до 10. Также, почему ругается на TGauge *wtf мол TGauge неопределенный символ? На TEdit *wtf не ругается . Почему? Вообще, как это все сделать нормально?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.08.2011, 17:04
Ответы с готовыми решениями:

Динамически созданные компоненты
Вопрос такого характера, когда я создаю на форме динамически компоненты, пример в данном примере создаю по родителю перенесенного на...

Перемещение динамически созданой компоненты
Кто знает, можна ли изменять координаты динамически созданой компоненты в программе??? TImage *image = new TImage(this); ...

Как удалять динамически созданные компоненты?
Хедер #include <Math.hpp> #include <math.h> #include <vcl.h> #include "PressedMatch.h" class Client { AnsiString fio; ...

24
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
22.08.2011, 04:13
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Flyer Посмотреть сообщение
минимальный пример с ComponentList
принцип работы ничем не отличается от вашего
C++
1
List->Add(tmp);
, за исключение того, что при удалении их списка строки по индвексу -
C++
1
ComponentList->Delete(5);
будет удален ваш динамически созданный компонент - указатль на него, в данном случае, с индексом 5, т.е., нет необходимости придумывать какие-нибудь идентификаторы для этих компонентов и хитрый способ доступа к ним, а сделать это, просто написав
C++
1
ComponentList->Items[1].Свойство = значение;
Пример удаления контролов с панели:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
TComponentList *cmp_list = new TComponentList;
 
int indx;
indx = Panel1->ControlCount;
if (cmp_list->Count == 0) {
  ShowMessage("Нет котролов на панели");
}
else {
  cmp_list->Delete(indx-1); // удалим последний контрол
}
for (int i = indx->Count - 1; i >= 0; i--) { // удалить все
  if (cmp_list->Count == 0) {
    ShowMessage("Нет котролов на панели");
  }
  else {
    cmp_list->Delete(i);
  }
}
Естественно, предварительно, в список контролы панели следует добавить, а для их идентификации - чтобы не забыть, какой индекс в списке какому контролу соотвествует , использовать, например, свойство Tag.
2
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
22.08.2011, 11:32  [ТС]
хмм, чето не так =/
Создаем лист:
C++
1
TComponentList *pb_list = new TComponentList;
Добавляем в него:
C++
1
 pb_list->Add(tmp);
и при попытке обратится как ты написал
C++
1
 pb_list->Items[2].Progress=50;
Имеем [BCC32 Error] Unit1.cpp(44): E2294 Structure required on left side of . or .*
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
22.08.2011, 12:00
да не помню я уже
C++
1
2
pb_list->Items[2]->Progress=50;
pb_list->Items->String[2]->Progress=50;
? может, и сболтнул чего - свойства бы оного листа посмотреть , да времени нет
1
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
22.08.2011, 12:04  [ТС]
Ни так, ни так =/ . Вот посмотрел как NiTan написал и попробовал.
C++
1
((TGauge*)pb_list->Items[2])->Progress=50;
Оно.
и еще, если удалить например 5 элемент в листе, что с индексами будет? Все после 5 уменьшатся на 1? То есть 6->5, 10->9 и т.д.?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.08.2011, 16:08
Отож, поэтому я обычно обеспечиваю доступ и удаляю через вектор

C++
1
for (int i=0,i<t2.size(),i++) delete t2[i];
C++
1
 t2[i]->Progress=50;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.08.2011, 16:08

Динамически созданные компоненты ведут себя так, будто их высота больше, чем есть
Всем доброго здравия :) Проблемка из области &quot;истина где-то рядом&quot;... Динамически создаю компоненты VLC TImage и TLabel,...

Динамически создать компоненты в столбик
Передо мной стоит задача, поставить элементы в столбик, с возможностью листать при помощи ползунка(Scroll). Я использовал FlowLayoutPanel и...

Как динамически создать массив из динамически конструируемых экземпляров класса?
Есть два класса.Подразумевается ,что первый в конструкторе выделяет интовый массив длинной n,второй выделяет массив экземпляров первого...

Динамически созданные компоненты
я создаю компоненты по нажатию на кнопку TextBox tx = new TextBox(); tx.Name = &quot;razdel&quot; +...

Динамически созданные компоненты
Имеется форма с созданным на ней datagridview. Остальные компоненты по мере необходимости создаются динамически. Динамически созданная...


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

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

Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru