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

Вызов обработчика события.

02.03.2010, 08:09. Показов 14172. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли из одного обработчика события, например:

C++
1
2
3
4
5
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//Код обработчика Button1;
//Вызов: void __fastcall TForm1::cbGndClick(TObject *Sender)?;
}
вызвать другой, например:

C++
1
2
3
4
void __fastcall TForm1::cbGndClick(TObject *Sender)
{
//Код обработчика  cbGnd 
}
и как это сделать? Какое значение должен принимать указатель *Sender? Или содержимое обработчика оформить функцией которую вызывать в разных обработчиках?
Заранее благодарен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2010, 08:09
Ответы с готовыми решениями:

Создание обработчика события
Пытаюсь создатьобработчик события для динамически созданного элемента. В unit.cpp void __fastcall TForm1::Button1Click(TObject *Sender)...

Функция внутри обработчика события?
Что я сделал не так почему выдает ошибку? void __fastcall TForm1::ValueListEditor1StringsChange(TObject *Sender) { void zapis(int...

Создание собственного обработчика события
Есть компонент с TStringList, как добавить в этот компонент собственный обработчик события? К примеру отлавливать его изменения и...

10
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
02.03.2010, 08:56
Если правильно я тебя понял
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Код обработчика Button1;
 cbGndClick(Sender);
}
 
вызвать другой, например:
 
void __fastcall TForm1::cbGndClick(TObject *Sender)
{
Код обработчика cbGnd 
}
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
02.03.2010, 09:01
C++
1
2
3
4
5
void __fastcall TForm1::Button1Click(TObject *Sender)
 {
 //Код обработчика Button1;
 cbGndClick(Sender); // можно так вызвать
 }
1
3 / 3 / 0
Регистрация: 13.02.2010
Сообщений: 33
02.03.2010, 21:06  [ТС]
ОГРОМНОЕ Спасибо!
0
fmm
24.03.2010, 04:30
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
C++
1
2
3
4
5
void __fastcall TForm1::Button1Click(TObject *Sender)
 {
 //Код обработчика Button1;
 cbGndClick(Sender); // можно так вызвать
 }
Усложняем задачу:
Есть кнопка - Caption к примеру "А".
Есть RichEdit1 - с обработчиком события Edit1KeyPress(TObject *Sender, wchar_t &Key)
Как при нажатии кнопки "А" генерировать ПОЛНОЦЕННОЕ СОБЫТИЕ с передачей значения
*((ButtonA->Caption).w_str()) в параметр &Key.
Т.е. в RichEdit1 должен добавиться символ 'A' словно так, как это было бы при нажатии клавиши "А" на клавиатуре, с фокусом в RichEdit1.
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
24.03.2010, 09:31
берем 3 кнопки с Caption A, B, C... назначаем им событие OnClick, а в нем:
C++
1
2
3
4
5
void __fastcall TMainForm::Button1Click(TObject *Sender)
{
   RichEdit1->Lines->Add(((TButton*)Sender)->Caption);
 
}
после нажатия будет появляться новая строка с буквой из Caption...
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
24.03.2010, 09:55
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
после нажатия будет появляться новая строка с буквой из Caption...
что совершенно не требуется.
fmm спрашивает как послать рич-едиту сообщение о якобы нажатии клавиши и передать в качестве кода клавиши символ из кэпшна баттона.

LRESULT SendMessage( HWNO hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
24.03.2010, 10:06
AntonChik, а мой код не Caption добавляет в RichEdit? пусть обозначит задание полностью, тогда будет видно, как это лучше реализовать, а сидеть и спорить с Вами, кто из нас лучше угадает его пожелания - мне лень, если честно...
Цитата Сообщение от AntonChik Посмотреть сообщение
что совершенно не требуется. fmm спрашивает как послать рич-едиту сообщение о якобы нажатии клавиши и передать в качестве кода клавиши символ из кэпшна баттона.
вам не кажется, что вы сами себе противоречите?

тем более ваше сообщение все равно надо вешать на какое-нить событие... покажите вашу реализацию...
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
24.03.2010, 10:20
Т.е. в RichEdit1 должен добавиться символ 'A' словно так, как это было бы при нажатии клавиши "А" на клавиатуре, с фокусом в RichEdit1.
по-моему всё весьма прозрачно.
так что если уж на то пошло, то корректней было бы написать:
Code
1
RichEdit1->Text=RichEdit1->Text+(((TButton*)Sender)->Caption);
а вообще это должно выглядеть примерно так

Code
1
SendMessage( RichEdit1->Handle, WM_PRESSKEY, ((TButton*)Sender)->Caption[1], 0);
в общем что то в этом духе, я не знаток WinAPI...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
24.03.2010, 10:26
AntonChik, ну вообще решения готового я и не собирался выдавать, а разве что направить человека, пусть сам думает...
1
fmm
24.03.2010, 18:42
Цитата Сообщение от AntonChik Посмотреть сообщение
RichEdit1->Text=RichEdit1->Text+(((TButton*)Sender)->Caption);
Всем спасибо за внимание. Суть дела в том, что решение "РичЕдит1-Текст += Батон->Капшион" не решает проблемы а создает еще больше проблем: к примеру, что будет, если курсор находится где-нибудь в середине текста? Результат такого решения - громоздкий код в стиле "изобрели а - ля вилосипед". За наводку на метод СендМесседж() - огромное спасибо.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.03.2010, 18:42
Помогаю со студенческими работами здесь

Вызов обработчика StringGrid1DrawCell
помогите пожалуйста нужна помощь в вызове функции StringGrid1DrawCell, или хотя бы ответе это реально? Добавлено через 10 минут ...

Присоединение обработчика события к динамическому массиву контролов
Создаём массив кнопок TButton *btn; //.... void __fastcall TForm1::FormShow(TObject *Sender) { for (int i=0;i<5;i++) ...

Создание обработчика события Onclick с дополнительными парметрами
Всем привет. Есть дочерний класс от TPanel. И для него потребовалось создать обработчик OnClick с дополнительным параметром. Что-то...

Вызов события на обработку
Может кто подсказать как правильно вызвать событие. На форме имеется: ComboBox, DBGrid. В DBGrid вызвал событие: DBGrid1MouseUp (в...

Вызов события OnChange программно
Есть 10 компонентов хот-кеив, хочу вызвать события OnChange у всех. Всем присвоил тег 1 Такой код не работает: for(int...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru