Как задать Onclick для своей кнопки?

  • Автор темы MaksimCNG
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

MaksimCNG

#1
Здраствуйте. Это мой первый пост. Давно читаю форум, но только сегодня решил задать возможно как Вас покажется глупый вопрос. Я не спец, а всего лишь начинающий в этой среде :unsure:
Суть проблеммы:
Пишу прогу по удалённому управлению реестром, всё было бы хорошо, если не такое огромное количество эллементов на форуме, что не сволсем удобно. В итоге решил создавать эллементы путём описания каждого. Элементы созадть могу, а вот обработчик событий OnClick не поддаётся, не хочет работать и всё. Подскажите пожалуйста как правильно задать OnClick, чтоб при нажатии на радиобаттон, происходили какие либо действия.

В качестве наглядного примера напишу часть своей работы.

TRadioButton * Button1 = new TRadioButton(Application); // определил радио кнопку
Button1->Parent=Form1; // сказал что родительно форма
Button1->Caption="Запретить"; // задал имя для кнопки
Button1->Left=5; // отступ слева
Button1->Top=20; // отступ сверху
Button1->Show(); // показать кнопку на форме

Как сдлеать чтоб при нажатии на кнопку происходили какие либо действия? Подскажите если кто знает :)
 
E
#2
M

MaksimCNG

#5
Хм ... в дизайнере я вижу следующее
void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{

}
а у меня

TRadioButton * Button1 = new TRadioButton(Application);
Button1->Parent=Form1;
Button1->Caption="Название кнопки";
Button1->Left=5;
Button1->Top=20;

Button1->OnClick = *вот в этом месте и возникают трудности*
Button1->Show();
Я хотябы в верном направлении? :)
Button1->OnClick = Button1Click(TObject *Sender)
{
Label1->Caption="Privet";
}
 
E
#6
Я хотябы в верном направлении?
Ну сравнивая мои и ваш вариант, разве не видите различия?
Хм ... в дизайнере я вижу следующее
Это реализация, еще есть определение, ищите в класе.

TRadioButton * Button1 = new TRadioButton(Application);
Это тоже не гуд.
 
M

MaksimCNG

#7
Разницу, вижу ... сейчас ещё форум почитаю ... может что с функциях найду )

Если есть ссылки на документацию которая мне может помочь, подскажите пожалуйста. :) Неужели никто с такой проблемой не сталкивался, или он настолько приметичвна, что её даже не расматривали? )))

Как я понял, нужно задавать функцию, например, после

TForm1 *Form1;
MyOnClick(что здесь писать пока не понял);

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
MyOnClick(аналогично, пока в процессе вкуривания)
{
код, который будет выполнен при нажатии на кнопку
}
И в форме следующая приблуда :)

TRadioButton * ButtonMR = new TRadioButton(Application);
ButtonMR->Parent=Form1;
ButtonMR->Caption="кукусики";
ButtonMR->Left=5;
ButtonMR->Top=20;

ButtonMR->OnClick = MyOnClick(что - то не достигнутое моим разумом);
ButtonMR->Show();

Здесь есть доли правды? :) Или это моменты утреннего бреда? :)
 
E
#8
ButtonMR->OnClick = MyOnClick(что - то не достигнутое моим разумом);
см. Сообщение #2
MyOnClick(что здесь писать пока не понял);
см. Сообщение #5

сложить эти два поста и будет то что надо, только думать!

Если есть ссылки на документацию которая мне может помочь
см. F1
 
M

MaksimCNG

#9
Всем спасибо, решил этот вопрос. Выкидываю ответ, так как выше он получен небыл. Вдруг кому помогу :)

Нужно объявить здесь
//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Menus.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
...
...
...
void __fastcall MyClickRButton13(TObject *Sender);
private: // User declarations
public: // User declarations


__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

Потом создаём свой эллемент на форме
например:
TRadioButton * RButton2 = new TRadioButton(Application);
RButton2->Parent=Group;
RButton2->Caption="name";
RButton2->Left=100;
RButton2->Top=20;
RButton2->OnClick=MyClickRButton13;
RButton2->Show();

И добавить сам обработчик
void __fastcall TForm1::MyClickRButton13(TObject *Sender)
{
//здесь Ваши события
//например
//Memo1->Lines=Add("Радио кнопка 13 - работает");
}
 
Статус
Закрыто для дальнейших ответов.