Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум программистов _ Borland C++ Builder & Kylix _ Как задать Onclick для своей кнопки?

Автор: MaksimCNG 3:05:2008, 05:11

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

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

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

Как сдлеать чтоб при нажатии на кнопку происходили какие либо действия? Подскажите если кто знает smile.gif


Автор: etc 3:05:2008, 05:25

Цитата(MaksimCNG @ 3:05:2008 - 07:11) *
В итоге решил создавать эллементы путём описания каждого.

В вашем случае - смысла нет никакого.
Цитата(MaksimCNG @ 3:05:2008 - 07:11) *
Как сдлеать чтоб при нажатии на кнопку происходили какие либо действия?

Button1->OnClick = MyOnClick;

Автор: MaksimCNG 3:05:2008, 06:18

Цитата
В вашем случае - смысла нет никакого.

Так уж получилось smile.gif В виду того, что опыта не достаточно.
Цитата
Button1->OnClick = MyOnClick;

MyOnClick он как - то отдельно описывается?

Спасибо! smile.gif

Автор: etc 3:05:2008, 06:38

Цитата(MaksimCNG @ 3:05:2008 - 08:18) *
MyOnClick он как - то отдельно описывается?

Точно также, как если бы вы делали через дизайнер.

Автор: MaksimCNG 3:05:2008, 06:58

Хм ... в дизайнере я вижу следующее

Цитата
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();


Я хотябы в верном направлении? smile.gif
Цитата
Button1->OnClick = Button1Click(TObject *Sender)
{
Label1->Caption="Privet";
}

Автор: etc 3:05:2008, 07:30

Цитата(MaksimCNG @ 3:05:2008 - 08:58) *
Я хотябы в верном направлении?
Ну сравнивая мои и ваш вариант, разве не видите различия?
Цитата(MaksimCNG @ 3:05:2008 - 08:58) *
Хм ... в дизайнере я вижу следующее

Это реализация, еще есть определение, ищите в класе.

Цитата(MaksimCNG @ 3:05:2008 - 08:58) *
TRadioButton * Button1 = new TRadioButton(Application);

Это тоже не гуд.

Автор: MaksimCNG 3:05:2008, 07:57

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

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

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

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

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


И в форме следующая приблуда smile.gif

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

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



Здесь есть доли правды? smile.gif Или это моменты утреннего бреда? smile.gif

Автор: etc 3:05:2008, 08:32

Цитата(MaksimCNG @ 3:05:2008 - 09:57) *
ButtonMR->OnClick = MyOnClick(что - то не достигнутое моим разумом);

см. Сообщение #2
Цитата(MaksimCNG @ 3:05:2008 - 09:57) *
MyOnClick(что здесь писать пока не понял);

см. Сообщение #5

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

Цитата(MaksimCNG @ 3:05:2008 - 09:57) *
Если есть ссылки на документацию которая мне может помочь

см. F1

Автор: MaksimCNG 9:05:2008, 06:47

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

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

#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 - работает");
}

Автор: sax_ol 9:05:2008, 07:29

Цитата(MaksimCNG @ 9:05:2008 - 08:47) *
Выкидываю ответ, так как выше он получен небыл.
Ну и зачем обманывать? вам сразу же сказали как, а то что вы думать не хотите, ну так это сугубо ваши тараканы.

Русская версия Invision Power Board (http://www.nulled.ws)
© Invision Power Services (http://www.nulled.ws)