Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Единый онклик для всего что есть на форме-как сдел, Если на форме много всего - то онклик дл 
:(
    Опции темы
zogman
Дата 5.2.2005, 13:37 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Если на форме много всего - то онклик для каждого надо писать,
свой - что несколько не красиво - как сделать чтобы по клику
в любом месте формы - напрмер на любом имедже который лежит на ней - вызывалась одна и таже функция.

(Кроме того эта форма не одна - а динамически я создаяю много таких форм).

Есть ли простой способ сделать такое ?
( Корявый способ у меня есть - через перехвант Message L_Button,
потом проход по циклу for (int i = 0; i < Screen->FormCount; ++i)
и поиск форму нужного типа
if( (
(Msg.hwnd==Screen->Forms[i]->Handle)
||(Screen->Forms[i]->Handle==GetParent(Msg.hwnd))
)
&& ( ! strcmp( Obrezanoe imya formy Form[i],"Form4Show2") )
)

i t.d.

нет ли чего по проще

Код

void __fastcall TForm4Show2::MessageEvent(tagMSG &Msg, bool &Handled)
{
if(  WM_LBUTTONUP==Msg.message)
for (int i = 0; i < Screen->FormCount; ++i)
{
   //char s[100];
   AnsiString s;
   s=Screen->Forms[i]->Name;
   char s2[100];
   strncpy(s2,s.c_str(),10);
   s2[10]=0;
// u vsex sgenerennyx form posle pervoi budut imena:Form4Show2_1, Form4Show2_2, ...
   // na etom i osnovan etot kusok
   // ClassType ne pabotaet
  if(     (
     (Msg.hwnd==Screen->Forms[i]->Handle)
     ||(Screen->Forms[i]->Handle==GetParent(Msg.hwnd))
           )
           &&  ( ! strcmp(s2,"Form4Show2") )
     )
{
  {

  TForm4Show2 *tmp=dynamic_cast<TForm4Show2 *>(Screen->Forms[i]);
        showsManager->SetActiveShow(tmp->showParent);

  MessageBeep(-1);
        }
   break;
}
//ShowMessage("jkkjkjkjk");
}
   
};

?


  Вверх
Конструктор
Дата 5.2.2005, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 12.5.2004
Где: Москва

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



Можно создать один обработчик OnClick, а потом на вкладке Events в Object Inspector выбирать в выпадающем списке этот единственный обработчик.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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