Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 14.08.2015
Сообщений: 3

Обращение к динамически созданному компоненту

14.08.2015, 17:42. Показов 2445. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Мне нужна помощь в моей программе

Мне надо, чтобы при нажатии на динамическую кнопку, капча этой кнопки инкрементилась на единицу,
если это вообще возможно.
Заранее спасибо



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
void __fastcall TForm4::BClick(TObject* Sender)
{
    d[0][2]->Caption = "clk"; //!!!!
}
 
void __fastcall TForm4::FormCreate(TObject *Sender)
{
 
for (int i=0; i < 5; i++)
{
    d[i] = new TButton*[5];
}
 
 for (int i=0; i < 5; i++)
 {
   for (int j=0; j < 5; j++)
   {
    d[i][j] = new TButton(Form4);
    d[i][j]->Parent = GroupBox1;
    d[i][j]->Top = 5+50*j;
    d[i][j]->Left = 5+50*i;
    d[i][j]->Caption = IntToStr(0);
    d[i][j]->Height = 50;
    d[i][j]->Width = 50;
    d[i][j]->Font->Name = "Tahoma";
    d[i][j]->Font->Size = 14;
    d[i][j]->OnClick = BClick;
   }
 }
 
}
Миниатюры
Обращение к динамически созданному компоненту   Обращение к динамически созданному компоненту   Обращение к динамически созданному компоненту  

0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.08.2015, 17:42
Ответы с готовыми решениями:

Обращение к компоненту, созданному в RunTime
Всем здравствуйте. TTimer *tmr; tmr = new TTimer(this); tmr-&gt;Name = &quot;tmrFlash&quot;; пытаюсь обратиться к экземпляру...

Обращение к динамически созданному объекту на динамически созданной форме
Как, создав динамический объект, TButton, обратиться к нему? Unit1.cpp void __fastcall TForm1::Button2Click(TObject *Sender) { ...

Передать созданному компоненту указатель на другой компонент на форме
Создаю компонент, который будет принимать DataSource и с ним работать. Создал свойство, которое передает указатель на DataSource в...

7
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,389
Записей в блоге: 3
14.08.2015, 18:58
Я бы обошелся безо всяких массивов:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  static int bNum = 0;
  TButton *B;
  for (int i = 0; i < 5; i++)
   for (int j = 0; j < 5; j++)
    {
      B = new TButton(GroupBox1);
      B->Parent = GroupBox1;
      B->Name = "Button" + IntToStr(bNum);
      B->Height = 50;
      B->Width = 50;
      B->Top = 5 + B->Height * j;
      B->Left = 5 + B->Width * i;
      B->Caption = "0";
      B->Font->Name = "Tahoma";
      B->Font->Size = 14;
      bNum++;
      B->OnClick = BClick;
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BClick(TObject* Sender)
{
   ((TButton*)Sender)->Caption = IntToStr(StrToInt(((TButton*)Sender)->Caption) + 1);
}
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33378 / 21502 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 11
14.08.2015, 19:05
Я бы и без кастов обошелся:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class TMyButton : public TButton
{
public:
    __fastcall virtual TMyButton(Classes::TComponent* AOwner) : TButton(AOwner)
    {
    }
 
    DYNAMIC void __fastcall Click(void)
    {
        Caption = IntToStr(StrToInt(Caption) + 1);
    }
};
 
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    static int bNum = 0;
    TMyButton *B;
    for (int i = 0; i < 5; i++)
        for (int j = 0; j < 5; j++)
        {
            B = new TMyButton(GroupBox1);
            B->Parent = GroupBox1;
            B->Name = "Button" + IntToStr(bNum);
            B->Height = 50;
            B->Width = 50;
            B->Top = 5 + B->Height * j;
            B->Left = 5 + B->Width * i;
            B->Caption = IntToStr(0);
            B->Font->Name = "Tahoma";
            B->Font->Size = 14;
            bNum++;
            // B->OnClick = BClick;
        }
}
3
0 / 0 / 0
Регистрация: 14.08.2015
Сообщений: 3
14.08.2015, 19:36  [ТС]
А возможно ли, чтобы вместе с капчей нажатой кнопки изменялась капча на соседней кнопке(например справа)?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33378 / 21502 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 11
14.08.2015, 19:45
Можно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class TMyButton : public TButton
{
public:
    TMyButton *Right;
    __fastcall virtual TMyButton(Classes::TComponent* AOwner) : TButton(AOwner)
    {
    }
 
    DYNAMIC void __fastcall Click(void)
    {
        Caption = IntToStr(StrToInt(Caption) + 1);
        if(Right) Right->Caption = IntToStr(StrToInt(Right->Caption) + 1);
    }
};
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    static int bNum = 0;
    TMyButton *B;
    for (int j = 0; j < 5; j++)
    {
        TMyButton *prev = 0;
        for (int i = 0; i < 5; i++) // слева
        // for (int i = 4; i > -1; i--) // справа
        {
            B = new TMyButton(GroupBox1);
            B->Parent = GroupBox1;
            B->Name = "Button" + IntToStr(bNum);
            B->Height = 50;
            B->Width = 50;
            B->Top = 5 + B->Height * j;
            B->Left = 5 + B->Width * i;
            B->Caption = IntToStr(0);
            B->Font->Name = "Tahoma";
            B->Font->Size = 14;
            B->Right = prev;
            prev = B;
            bNum++;
        }
    }
}
0
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,389
Записей в блоге: 3
14.08.2015, 19:45
ColorBlind6, можно, конечно, вот только не лучше ли полностью задачу озвучить. А то вот так, по одному вопросу придем к тому, что нам нафиг не надо столько динамических кнопок...
0
0 / 0 / 0
Регистрация: 14.08.2015
Сообщений: 3
14.08.2015, 19:55  [ТС]
У меня есть идея для игры
я нажимаю на кнопку, капча инкрементируется, а кнопки, стоящие рядом и имеющие такую же капчу, принимают другие случайные значения
Такая игра уже есть, я начинающий(это наверно и так понятно) и просто хотел попробовать написать "механизм" этой игры
0
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,389
Записей в блоге: 3
14.08.2015, 20:47
Идея ясна, только некоторые уточнения:
1.
Цитата Сообщение от ColorBlind6 Посмотреть сообщение
кнопки, стоящие рядом
Я правильно понимаю, что для кнопки 1 (см.рис) рядом стоящими будут 3 кнопки, а для кнопки 2 - 8?
Цитата Сообщение от ColorBlind6 Посмотреть сообщение
другие случайные значения
В каком диапазоне?
Изображения
 
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.08.2015, 20:47
Помогаю со студенческими работами здесь

Ошибка. Динамически созданному Label присвоить событие OnClick
Когда пытаюсь динамически созданному Label присвоить событие OnClick выдает ошибку. Как это исправить? AnsiString...

Динамическое обращение к компоненту
Всем доброго времени суток. В БД храню привилегии пользователей (право на нажатие кнопок TToolButton на панели), могу ли я сделать примерно...

Обращение к компоненту из метода разработаного класса
На форме расположен компонент TPainBox1 есть созданный мною класс Entity1 class Entity1 {public : friend TForm3; int x; ...

Обращение к динамически созданным объектам
Доброго времени суток. Есть меню формы - MainMenu1. В одной из вкладок динамически создаются кнопки, по нажатию на которые...

Обращение к динамически созданным обьектам
Здраствуйте помогите с проблемой Ситуация следущая на PageControl динамически создаются вкладки на вкладках тоже динамически создаются...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru