Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TMenuItem и FindComponent() / 12 сообщений из 12, страница 1 из 1
05.05.2018, 12:28
    #39640605
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TMenuItem и FindComponent()
На многих ресурсах встречал совет по созданию динамических пунктов меню:

Item := TMenuItem.Create(FPopupMenu);

Но при этом этот элемент не будет найден на форме с помощью FindComponent()
Мне критически важен поиск TMenuItem по имени.
Если заменить на экземпляр формы (н-р self), то FindComponent() начнет находить.
Дизайнтаймовые TMenuItem нормально ищутся FindComponent().

В чем смысл таких советов ?
Для автоматического удаления всех TMenuItem при удалении FPopupMenu ?
Упускают проблему с поиском как несущественную ?
...
Рейтинг: 0 / 0
05.05.2018, 14:19
    #39640633
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TMenuItem и FindComponent()
L_argoпроблему с поиском как несущественную ?Мое воображение отказывается мне подсказывать, зачем для элемента меню нужно вызывать FindComponent.
...
Рейтинг: 0 / 0
05.05.2018, 14:42
    #39640636
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TMenuItem и FindComponent()
Поддерживаю предыдущего оратора.
Хочешь найти TAction обращайся к TActionList, хочешь найти TField обращайся к TDataset, хочешь найти TMenuItem ( ITEM MENU - пункт меню) обращайся к TMenu, а не как не к форме
...
Рейтинг: 0 / 0
05.05.2018, 16:26
    #39640670
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TMenuItem и FindComponent()
_Vasilisk_L_argoпроблему с поиском как несущественную ?Мое воображение отказывается мне подсказывать, зачем для элемента меню нужно вызывать FindComponent.Тренируй. :)
Для ORM.
В опред. момент нужно скрыть/деактивировать некот. пункты.
Есть единая система управления видимостью/редактированием контролов, колонок гридов и т.д.
В ней список контролов и условия.

зы: Конеш можно было и список указателей сделать, но мне показалось, что список живых имен будет удобнее, н-р для отладки.
...
Рейтинг: 0 / 0
05.05.2018, 16:57
    #39640682
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TMenuItem и FindComponent()
L_argoВ опред. момент нужно скрыть/деактивировать некот. пункты.
Есть единая система управления видимостью/редактированием контролов, колонок гридов и т.д.Именно для этого придуманы TAction
L_argoВ ней список контролов и условия.А так будет набор TAction
L_argo: Конеш можно было и список указателей сделать, но мне показалось, что список живых имен будет удобнее, н-р для отладки.Чем Component.Name не устроил?
...
Рейтинг: 0 / 0
05.05.2018, 17:00
    #39640684
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TMenuItem и FindComponent()
L_argo,

если нужен поиск по имени, то следует предварительно у динамически созданных элементов меню инициализировать свойство .Name:=
...
Рейтинг: 0 / 0
06.05.2018, 09:58
    #39640855
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TMenuItem и FindComponent()
L_argo,

сама делфи owner'ом item'ов делает форму, в чем можно легко убедиться. зачем ты читаешь какие-то советы - не понятно. делай так же, как среда и проблем не будет.
...
Рейтинг: 0 / 0
06.05.2018, 10:00
    #39640858
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TMenuItem и FindComponent()
L_argo,

можешь эту ссылку посмотреть:

https://www.gunsmoker.ru/2010/05/90.html

её всегда стоит иметь в виду, когда что-то находишь в интернетах.
...
Рейтинг: 0 / 0
07.05.2018, 09:54
    #39641227
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TMenuItem и FindComponent()
//если нужен поиск по имени, то следует предварительно у динамически созданных элементов меню инициализировать свойство .Name:=

Ну дык само собой. Непонятно зачем про это напоминать.

makhaonсама делфи owner'ом item'ов делает форму, в чем можно легко убедиться. зачем ты читаешь какие-то советы - не понятно. делай так же, как среда и проблем не будет.Ну эти советы приведены на серьезных ресурсах, н-р в документации Эмбы.
Вот меня и интересует, почему дают такие советы, в то время когда сама среда делает по другому.

// Хочешь найти TAction обращайся к TActionList, хочешь найти TField обращайся к TDataset, хочешь найти TMenuItem (ITEM MENU - пункт меню) обращайся к TMenu, а не как не к форме
Офигенный по мудрости совет. Но бессмысленный.

зы: всем спасибо. Вопрос закрыт, т.к. скатился в флейм.
...
Рейтинг: 0 / 0
07.05.2018, 10:39
    #39641253
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TMenuItem и FindComponent()
L_argo,

50 на 50. Эмба, в самом деле так делает. Как раз таки сторонние ресурсы делают как среда:
http://delphiworld.narod.ru/base/create_popup_menu_items.html
Nobody's perfect.
...
Рейтинг: 0 / 0
07.05.2018, 10:43
    #39641256
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TMenuItem и FindComponent()
L_argoВ чем смысл таких советов ? Для автоматического удаления всех TMenuItem при удалении FPopupMenu ? Упускают проблему с поиском как несущественную ?
Проблема с поиском - это ваша фантазия. Никто этим не занимается, по крайней мере через форму.
Вы придумали проблему, вы знаете метод её решения, зачем этот топик вообще ???
...
Рейтинг: 0 / 0
07.05.2018, 10:45
    #39641259
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TMenuItem и FindComponent()
makhaonL_argo,

50 на 50. Эмба, в самом деле так делает. Как раз таки сторонние ресурсы делают как среда:
http://delphiworld.narod.ru/base/create_popup_menu_items.html
Nobody's perfect.+1. Так и есть.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TMenuItem и FindComponent() / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]