Версия для печати темы
Форум программистов _ Borland C++ Builder & Kylix _ Как задать Onclick для своей кнопки?
Автор: MaksimCNG 3:05:2008, 05:11
Здраствуйте. Это мой первый пост. Давно читаю форум, но только сегодня решил задать возможно как Вас покажется глупый вопрос. Я не спец, а всего лишь начинающий в этой среде 
Суть проблеммы:
Пишу прогу по удалённому управлению реестром, всё было бы хорошо, если не такое огромное количество эллементов на форуме, что не сволсем удобно. В итоге решил создавать эллементы путём описания каждого. Элементы созадть могу, а вот обработчик событий OnClick не поддаётся, не хочет работать и всё. Подскажите пожалуйста как правильно задать OnClick, чтоб при нажатии на радиобаттон, происходили какие либо действия.
В качестве наглядного примера напишу часть своей работы.
TRadioButton * Button1 = new TRadioButton(Application); // определил радио кнопку
Button1->Parent=Form1; // сказал что родительно форма
Button1->Caption="Запретить"; // задал имя для кнопки
Button1->Left=5; // отступ слева
Button1->Top=20; // отступ сверху
Button1->Show(); // показать кнопку на форме
Как сдлеать чтоб при нажатии на кнопку происходили какие либо действия? Подскажите если кто знает 
Автор: 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
Цитата
В вашем случае - смысла нет никакого.
Так уж получилось

В виду того, что опыта не достаточно.
Цитата
Button1->OnClick = MyOnClick;
MyOnClick он как - то отдельно описывается?
Спасибо!
Автор: 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();
Я хотябы в верном направлении?

Цитата
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
Разницу, вижу ... сейчас ещё форум почитаю ... может что с функциях найду )
Если есть ссылки на документацию которая мне может помочь, подскажите пожалуйста.
Неужели никто с такой проблемой не сталкивался, или он настолько приметичвна, что её даже не расматривали? )))
Как я понял, нужно задавать функцию, например, после
Цитата
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();
Здесь есть доли правды?

Или это моменты утреннего бреда?
Автор: 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
Всем спасибо, решил этот вопрос. Выкидываю ответ, так как выше он получен небыл. Вдруг кому помогу 
Нужно объявить здесь
//---------------------------------------------------------------------------
#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)