Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызвать событие, из другого события 
:(
    Опции темы
Лена
Дата 2.11.2006, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: 11
Всего: 11



У меня есть обработчик OnMouseUP для DBGrid1:
void __fastcall TForm1::DBGrid1MouseUp(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
//код
}
Мне надо вызвать этот обработчик из события OnTitleClick этого DBGrid1.
Как это правильно сделать?
Можно просто скопировать весь код из OnMouseUP и вставить в конец OnTitleClick, но хочется просто одной строкой вызвать OnMouseUP.
Так не правильно: TForm1::DBGrid1MouseUp(0,0,0,0,0); Подскажите.

PM MAIL   Вверх
VitasDeWind
Дата 2.11.2006, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 2.11.2006

Репутация: нет
Всего: нет



А так не пробывала?
Код


void __fastcall TCOPULATIONs::DBGrid7MouseUp(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
//код
}
//---------------------------------------------------------------------------

void __fastcall TCOPULATIONs::DBGrid7TitleClick(TColumn *Column)
{
DBGrid7->OnMouseUp;
}
//---------------------------------------------------------------------------



Не очень понятен смысл такой процедуры. То есть если щелкаешь по Titly грида происходит какой-код записанный в mouseUp, а не проще испоользовать процедуру к примеру, или mouseUp тоже имеет какое-то значение в этом? 
PM MAIL   Вверх
dumb
Дата 2.11.2006, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



если ты в коде обработчика не используешь параметры, то вызывай просто:
Код

DBGrid1MouseUp(0, TMouseButton(), TShiftState(), 0, 0);

НО! ты уверена, что это тебе нужно? - OnMouseUp вызывается для всей поверхности контрола, т.е. срабатывает и при щелчке на title, и на пустом поле, и на строках... таким образом, если ты в обработчик OnTitleClick поставишь вызов mouseup, то он у тебя просто два раза будет на один клик срабатывать. брр...

Цитата(VitasDeWind @  2.11.2006,  17:56 Найти цитируемый пост)
DBGrid7->OnMouseUp;

тоже неплохо.
аналогия:
Код

int x;
x;

PM MAIL   Вверх
Лена
Дата 2.11.2006, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: 11
Всего: 11



Спасибо, работает. 
При щелчке на титле происходит сортировка. Со временем понадобился обработчик OnMouseUp. Он считывает значение из текущей записи грида. Надо объединить эти два обработчика. Как лучше объединить в моем случае?
Доп. вопрос:
Какая цепь событий происходит при щелчке на полосе прокрутки DBGrid?

PM MAIL   Вверх
dumb
Дата 2.11.2006, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



Цитата(Лена @  2.11.2006,  18:34 Найти цитируемый пост)
Со временем понадобился обработчик OnMouseUp. Он считывает значение из текущей записи грида.

хм. а почему не OnCellClick?

Цитата(Лена @  2.11.2006,  18:34 Найти цитируемый пост)
Как лучше объединить в моем случае?

в уже реализованном тобой варианте, ничего объединять не надо - при щелчке на заголовке вызовется и OnTitleClick и OnMouseUp.

Цитата(Лена @  2.11.2006,  18:34 Найти цитируемый пост)
Какая цепь событий происходит при щелчке на полосе прокрутки DBGrid?

вызывается метод Scroll.
PM MAIL   Вверх
Лена
Дата 2.11.2006, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: 11
Всего: 11



Cпасибо.
Если мне надо было бы объединить событие OnTitleClick с показом одной из страниц PageControl1 (cобытие OnShow cтраницы PageControl1). То тогда так?:
Код

void __fastcall TForm1::DBGrid8TitleClick(TColumn *Column)
{
//Код

Form1->TabSheet5Show(0);
}

void __fastcall TForm1::TabSheet5Show(TObject *Sender)
{
//код

}


PM MAIL   Вверх
codelord
Дата 2.11.2006, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 16
Всего: 39



мне кажется лучше так..
Код

void __fastcall TForm1::DBGrid8TitleClick(TColumn *Column)
{
//Код
TabSheet5Show(Sender);
}

void __fastcall TForm1::TabSheet5Show(TObject *Sender)
{
//код

}



--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
dumb
Дата 4.11.2006, 05:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



Лена, вообще говоря, прямой вызов обработчиков - это моветон.
и если "клики" - еще туда-сюда, то прямой вызов OnShow - откровенное зло.

для "повторяемых" участков кода придумали процедуры и функции - ими и пользуйся.

и не стесняйся читать справку по используемым компонентам: чтобы показать определенную страницу PageControl'а нужно установить соответствующее значение в свойство ActivePage(PageControl1->ActivePage = 5;), а не вызывать обработчик OnShow...

ps. т.е. когда будешь писать код, пой песенку: "никогда, пара-ра-ра-па-па-па-па-пам, не вызываем обработчики"... smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.