Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2007, 19:36   #1
BeeX
 
Регистрация: 21.11.2007
Сообщений: 8
Вопрос Помогите с onClick

Хочу чтоб прога сама создавала пункты меню (в частности popup). к этим пунктам она присваивала соответственную функцию onClick. Внимание! программа откомпелированная! Ну с созданием пунктов я разобрался сам... Осталось события присвоить...
Подскажите как это делать...
Заранее спасибо!
BeeX вне форума Ответить с цитированием
Старый 22.11.2007, 02:49   #2
SalasAndriy
Форумчанин Подтвердите свой е-майл
 
Аватар для SalasAndriy
 
Регистрация: 01.11.2007
Сообщений: 157
По умолчанию

Доброго времени суток! Ну что я могу сказать. Вот посмотри:

Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   // Элемент №1
   TMenuItem *Menu = new TMenuItem(0);
   Menu->Caption = "Название элемента меню 1";

   // Здесь ты указываешь элементу функцию
   // чтоб он мог её вызвать впи возникновении события
   Menu->OnClick = MenusClick;  

   // Добавляем элемент 
   MainMenu1->Items->Add(Menu);

   // или PopupMenu1->Items->Add(Menu);

   // Элемент №2
   Menu = new TMenuItem(0);
   Menu->Caption = "Название элемента меню 2";

   // Здесь ты указываешь элементу функцию
   // чтоб он мог её вызвать впи возникновении события
   Menu->OnClick = MenusClick;  

   // Добавляем элемент 
   MainMenu1->Items->Add(Menu);

   // или PopupMenu1->Items->Add(Menu);
}
//---------------------------------------------------------------------
// Функция которая будет исполнятся при нажатии на 
// уже созданый тобой елемент. Но учти что она должна
// быть заранее создана потому, что создать её програмно
// не выйдет. Функция MenusClick должна быть обьявлена
// в форме.
void __fastcall TForm1::MenusClick(TObject *Sender)
{
   TMenuItem *Menu = (TMenuItem*)Sender;
   AnsiString Text = Menu->Caption;

   // Цикл для устранения символа '&' из строки
   // он там часто присудствует без ведома.
   // Этот символ при выводе текста подчеркивает
   // следующую за ним букву например:
   // Слово: "&Страна"
   // Результат: "Страна"
   for(int i = 1; i < Text.Length(); i++)
   {
      if(Text[i] == '&')
      {
         Text.Delete(i, 1);
         i--;
      }
   }

   if(Text.AnsiPos("Название элемента меню 1") >= 1)
   {
      // Код елемента 1
   }
   if(Text.AnsiPos("Название элемента меню 2") >= 1)
   {
      // Код елемента 2
   }
}
//---------------------------------------------------------------------
}
Ну вот и всё чем смог помочь! Я сам в основном пользуюсь таким принцыпом.
Буду рад если помогло!!!
SalasAndriy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OnClick - правая или левая кнопка мыши Vadim_S Общие вопросы Delphi 8 16.09.2009 18:15
Организация обработчика OnClick 8alig8 Помощь студентам 1 03.06.2008 05:11
OnClick для массива компонентов Dj_smart Компоненты Delphi 5 30.04.2008 14:16
Как изменить цвет шрифта кнопки + объявление OnClick Yury Общие вопросы Delphi 7 04.05.2007 04:55