Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 47

Ошибка с динамическим присвоением свойств

06.01.2011, 18:01. Показов 3088. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вообщем народ тут проблемка встала, создаю диномически кнопки, НО как присвоить им свойство OnClick ? вот кусок кода....нужно что бы через массив каждой отдельно присваивалось

C++
1
2
3
4
5
6
7
8
9
for(int i = 1; i <= a; i++)
{
Form1->Edit1->Text=i;
array_btn[i] = new TButton (Form1);
array_btn[i]->Parent = Form1;
array_btn[i]->Top = 5 + (24 * i);
array_btn[i]->Left = 80;
array_btn[i]->Hint=i;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.01.2011, 18:01
Ответы с готовыми решениями:

ошибка с динамическим присвоением свойств 2
Здравствуйте. почитав тему https://www.cyberforum.ru/cpp-builder/thread224911-page3.html не прояснил до конца некоторые моменты. При...

Разработка демонстрационного многопоточного приложения с динамическим изменением свойств окна и компонент
Основные требования: Наличие кнопок «Запуск потока», «Остановка потока», «Завершение потока» по нажатию на которые соответственно...

Ошибка с присвоением значения
Здравствуйте! Можете подсказать как решить проблему с присвоением значения в классе Program. class Realize { ...

26
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
09.01.2011, 22:55
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от MikeSoft Посмотреть сообщение
При создании вы укажите или заголовок, или имя, или будете знать высоту, ширину и т.д.
Все VCL-объекты размещаются в динамической области и при создании указателю присваивается адрес начальной ячейки памяти.
- было бы интересно обратиться напрямую к ячейке памяти , без указания имени и т.п. .
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
10.01.2011, 02:38
LK, так всё в ваших руках. Используйте указатель (void *) или указатель на известный вам объект.
Сохранили - обратились. Вот только сразу назревает вопрос: зачем, если перечень уже существует?

Ну и напоследок - посмотрите на динамический список объектов TList. Думаю, это то, что вам нужно
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
10.01.2011, 07:36
Цитата Сообщение от MikeSoft
Используйте указатель (void *)
- пример не соизволите ?
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
10.01.2011, 10:02
LK, например, создание кнопки:
C++
1
2
3
void *pButton = new TButton(this);
((TButton *)pButton)->Parent = this;
((TButton *)pButton)->Caption = "MyButton";
Не задаём компоненту имя и отыщем его по заголовку:
C++
1
2
3
4
5
6
7
8
void *pButton = NULL;
for (int i = 0; i < this->ComponentCount; i++) {
  TButton *SearchBtn = dynamic_cast <TButton *> (this->Components[i]);
  if (SearchBtn && SearchBtn->Caption == "MyButton") {
    ShowMessage("Component exists");
    pButton = SearchBtn;
  }
}
1
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 9
10.01.2011, 12:48
Т.е., все равно приходим то ли к Caption, то ли к Name, то ли к Tag ... что понятно .
Но вариант занятный, спасибо .
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
10.01.2011, 12:58
Цитата Сообщение от CloneLK Посмотреть сообщение
Т.е., все равно приходим то ли к Caption, то ли к Name, то ли к Tag ... что понятно
Должно же быть хоть какое свойство, к которому можно привязаться ...
Хотя, можно сделать интересую вещь...
Если dynamic_cast возвращает не нулевое значение, можно заставить "дрожать" найденный компонент и выдать вопрос пользователю "Нужный компонент найден или продолжить поиск?"
Сделать несложно, только нужно найти задачи, в котором можно применить такой метод
0
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 9
10.01.2011, 13:06
Цитата Сообщение от MikeSoft Посмотреть сообщение
1. Должно же быть хоть какое свойство, к которому можно привязаться ...
Хотя, можно сделать интересую вещь...
2. Если dynamic_cast возвращает не нулевое значение, можно заставить "дрожать" найденный компонент и выдать вопрос пользователю "Нужный компонент найден или продолжить поиск?"
Сделать несложно, только нужно найти задачи, в котором можно применить такой метод
1. Естественно .
2. Найти не сложно, например, именно в этом месте я наступил на грабли, пытаясь перехватить системное сообщение "что-то с таким именем уже где-то есть" , но для "голого" компонента, т.е., без имени и пр.
3. Заставить "дрожать" - что Вы имеете ввиду ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.01.2011, 13:06

Ошибка с присвоением (заменой) в цикле
Недавно открыл для себя Питон и решил начать изучать,пытаюсь посимвольно распарсить строку и выполнить действия,конкретно почему-то не...

Ошибка с присвоением значений к массивам
Значение функции дроби,не могу присвоить к массиву... не получается подсчет ..Помогите плиз..с этим кусочком.... Код: double...

Ошибка алгоритма с присвоением данных в массив
Добрых суток! Сносно работается с диапазонами. С алгоритмами не было проблем. Но начала работу с массивами - и алгоритмы, которые...

Ошибка с присвоением элементу стиля Cannot read property 'style' of null"
я наверное чего-то о яваскрипт не знаю, но у меня не работает вот этот скриптvar workDone = 15;...

Ошибка с динамическим захватом
Задача поставлена так: сформировать двумерный массив из данного одномерного, но размерности двумерного массива спросите у пользователя, а...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru