Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 368

/ вопрос открыт /

Приветствую!!!У меня MainMenu.На событие формы OnShow такой текст(работает). Нужно добавить строчек,чтоб при клике по соотв.элементу, форме передавался фокус.

Приложение:
  1. NewItem:= TMenuItem.Create(Form1.N45);
  2. NewItem.Caption:=Caption;
  3. Form1.N45.Add(NewItem);
  4. Form1.N45.Find(Caption).RadioItem:=True;


KilkaMS Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: KilkaMS (статус: Посетитель)
Вопрос отправлен: 3 марта 2007, 00:20
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

В объявлении формы надо прописать обработчик события OnClick() для свежесозданных пунктов MainMenu. В реализации этого обработчика надо передать фокус форме. При создании нового пункта меню, его свойству OnClick надо присовоить сделанный обработчик.
См. Приложение.

Приложение:
  1. type
  2. Form1 = class(TForm);
  3. ....
  4. protected
  5. procedure NewItemClick(Sender: TObject);
  6. end;
  7.  
  8. implementation
  9. ....
  10.  
  11. procedure TForm1.NewItemClick(Sender: TObject);
  12. begin
  13. if CanFocus
  14. then SetFocus;
  15. end;
  16.  
  17. ........
  18. NewItem:= TMenuItem.Create(Form1.N45);
  19. NewItem.Caption:=Caption;
  20. Form1.N45.Add(NewItem);
  21. Form1.N45.Find(Caption).RadioItem:=True;
  22. //=============
  23. NewItem.OnClick:= NewItemClick;


Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 5 марта 2007, 08:37
Оценка за ответ: 5

Комментарий к оценке: Это вариант рабосий,но не красивый.Я надеялся еще что-нить узнать.Спасибо за потраченое время.

Мини-форум вопроса

Всего сообщений: 3; последнее сообщение — 30 января 2009, 11:45; участников в обсуждении: 3.
Шарайчук Сергей Олександрович

Шарайчук Сергей Олександрович (статус: 2-ой класс), 3 марта 2007, 16:13 [#1]:

Можно поконкретние что тебе нужно?
Я бы изменил мир, но Бог не дает исходники!
KilkaMS

KilkaMS (статус: Посетитель), 4 марта 2007, 00:52 [#2]:

Во многих программах есть элемент 'Окно'.Хочу сделать нечто подобное.Открывается форма, создается кнопка с ее названием в MainMenu(у меня несколько форм).передаю фокус на главную форму.После открытия меню 'Окно'выбираю элемент соотв уже сущ. форме,и она получает фокус.Все это надо сделать во время выполнения программы.
Единственное что я придумал,это создать процедур в кол-ве равной кол-ву форм,и на событие OnClick присвоить имя процедуры.Но мне это кажется некрасивым методом.
Владимиров В.Ф.

Владимиров В.Ф. (статус: Посетитель), 30 января 2009, 11:45 [#3]:

Спасибо за ответ на вопрос 368. Эта сторона вопроса понятна. Из вашего ответа следует, что иннструментарий разработчика сохранен в прежнем объеме?

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:38
Выполнено за 0.03 сек.