C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
назначение метода класса на событие
den
Отправлено: 28.09.2005, 13:26


Не зарегистрирован







Здравствуйте!
Имеется класс, у которого есть метод возвращающий значение функции типа float. Как назначить этому методу событие, чтобы я мог задавать вид функции на форме, по ходу выполнения программы, а не в классе?
gvg
Отправлено: 28.09.2005, 20:53


Машинист паровоза

Группа: Участник
Сообщений: 222



QUOTE
Как назначить этому методу событие, чтобы я мог задавать вид функции на форме, по ходу выполнения программы, а не в классе?

Что такое "вид функции на форме"?
BreakPointMAN
Отправлено: 28.09.2005, 23:32


Станционный диспетчер

Группа: Участник
Сообщений: 86



Дэн! wink.gif Чтобы в run-time просчитать значение какого-то выражения, заданного в виде строки, тебе нужен компонент/класс/библиотечка, которая парсит выражение, возможно переводит его в обратную польскую нотацию, и просчитывает... я юзал TRxMathParser из RxLib 2.75 для этих целей... %)
den
Отправлено: 29.09.2005, 15:09


Не зарегистрирован







Здравствуйте! Видел то что мне нужно на Паскале:
type
TGetFunc = procedure(Sender: TObject; var Y: Extended) of object;
TMyClass = class
private
fOnGetFunc: TGetFunc;
procedure SetOnGetFunc(const Value: TGetFunc);
public
property OnGetFunc: TGetFunc read fOnGetFunc write SetOnGetFunc;
end;
Как такой код реализовать на C++ Builder?

2.Стандартный TParser хуже?
Gedeon
Отправлено: 29.09.2005, 16:43


Ветеран

Группа: Модератор
Сообщений: 1742



Я кажется вопрос понял, имеется ввиду назначить в зависимости от ситуации разные методы, так?

Тогда так:
CODE

void __fastcall TForm1::Method2(TObject *Sender)
{
ShowMessage("Method2");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Method1(TObject *Sender)
{
ShowMessage("Method1");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SetClick(TObject *Sender)
{
if(RadioButton1->Checked) Button1->OnClick = Method1;
if(RadioButton2->Checked) Button1->OnClick = Method2;
}
//---------------------------------------------------------------------------

На форму 2 радиокнопки и две кнопки, одной устанавливаем, второй смотрим событие.

Вернуться в Вопросы программирования в C++Builder