34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
1

Вызов события на обработку

20.09.2014, 11:04. Показов 2276. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Может кто подсказать как правильно вызвать событие.

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

Как мне его вызвать в ComboBox1Click?

C++
1
2
3
4
5
6
void __fastcall TForm2::ComboBox1Click(TObject *Sender)
{
  .... 
 // получившийся заголовок в программе  
 void __fastcall TForm1::DBGrid1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)  
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.09.2014, 11:04
Ответы с готовыми решениями:

Не выходим на обработку события OnKeuDown
Перед запуском основного окна программы я создаю вспомогательное окно, которое висит некоторое...

Вызов обработчика события.
Можно ли из одного обработчика события, например: void __fastcall TForm1::Button1Click(TObject...

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

Вызов нажатия кнопки из другого события
Всегда вызывал нажатия кнопок из других событий вот таким способом ButtonClick(Sender); На днях...

6
Модератор
9238 / 6021 / 2374
Регистрация: 21.01.2014
Сообщений: 25,730
Записей в блоге: 3
20.09.2014, 11:19 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm4::DBGrid1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{
   ShowMessage("Mouse Up");
}
//---------------------------------------------------------------------------
void __fastcall TForm4::ComboBox1Change(TObject *Sender)
{
  TShiftState Shift;
  TMouseButton Button;
  int X, Y;
  DBGrid1MouseUp(Sender, Button, Shift, X, Y);
}
0
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
20.09.2014, 12:21 3
Within_t, Может вам обработку вынести в отдельный метод, который вызывать и в ComboBoxClick и в DBGridMouseUp? Так будет правильнее.
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
20.09.2014, 15:17  [ТС] 4
Цитата Сообщение от kodv Посмотреть сообщение
Так будет правильнее.
У меня так ни чего не получается(
0
Модератор
9238 / 6021 / 2374
Регистрация: 21.01.2014
Сообщений: 25,730
Записей в блоге: 3
20.09.2014, 16:01 5
Ну примерно так...
Файл *.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    TDBGrid *DBGrid1;
    TComboBox *ComboBox1;
    void __fastcall DBGrid1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y);
    void __fastcall ComboBox1Change(TObject *Sender);
private:    // User declarations
    void __fastcall MyMethod(); // <<== Вот тут объявление своего метода
public:     // User declarations
    __fastcall TForm1(TComponent* Owner);
};
Файл *.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void __fastcall TForm1::DBGrid1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{
  MyMethod();
}
//---------------------------------------------------------------------------
//Вот тут реализация своего метода (руками пишешь)
void __fastcall TForm1::MyMethod()
{
  //Тут какие-то действия...
  ShowMessage("Yes");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
  MyMethod();
}
//---------------------------------------------------------------------------
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32830 / 21168 / 8147
Регистрация: 22.10.2011
Сообщений: 36,429
Записей в блоге: 8
20.09.2014, 16:13 6
Within_t, показывай, как пытался.
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
20.09.2014, 16:53  [ТС] 7
Что то у меня вообще ни чего не получается....(((

Hа форме я разместил 2 DBGrid'a (для того чтобы выбрать тему и соответственно список вопросов принадлежащих к этой теме). Для этого я в событии DBGrid1, написал следующий код и он рабочий:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm2::DBGrid1MouseUp(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  AnsiString Rezh = DBGrid1->SelectedField->Text;
  //***************
  ADOQuery2->Close();
  ADOQuery2->SQL->Clear();
  ADOQuery2->SQL->Add("SELECT Test.vopros, Test.ot1, Test.ot2, Test.ot3, Test.ot4, Test.pr_ot \
                        FROM Tema INNER JOIN Test ON Tema.rezh = Test.rezh \
                        WHERE tema = :Ptema");
  ADOQuery2->Parameters->ParamByName("Ptema")->Value=Rezh;
  ADOQuery2->Open();
}
Эту выборку пользователь не будет видеть. Для этого у меня на форме имеется выпадающий список тем. В нем я выбираю соответствующую тему и "кликаю". Происходит поиск в таблице "Темы" и курсор встает на соответствующую запись и тут мне нужно и вызвать событие "DBGrid1MouseUp", а оно не активируется.

Может кто что посоветует?)))

PS Извините, что создал тему не в том разделе.))))


Главное если сначала кликнешь по DBGrid1 и после этого по выпадающему списку, то все работает. А если сначала по вып/списку, то ни как....))))
0
20.09.2014, 16:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.09.2014, 16:53
Помогаю со студенческими работами здесь

Выполнение 2го события (вызов функции)
Здравствуйте, есть событие при нажтие кнопки1 Как мне сделать, чтобы при нажатии кнопки2...

использовать обработку события по изменению данных DataGridView в обработке события сторонней кнопки
Имеется некий DataGridView, при изменении данных в определенной ячейке которого создается...

Вызов события из другого события по нажатию клавиши
Всем привет! Есть кнопка на Windows.Forms, к ней привязано событие. Хочется, чтобы еще и по нажатию...

Как записать обработку события в объект?
Здравствуйте уважаемые форумчане. У меня есть объект в котором хранятся массивы и они выводятся...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru