|
|
|
TMenuItem и FindComponent()
|
|||
|---|---|---|---|
|
#18+
На многих ресурсах встречал совет по созданию динамических пунктов меню: Item := TMenuItem.Create(FPopupMenu); Но при этом этот элемент не будет найден на форме с помощью FindComponent() Мне критически важен поиск TMenuItem по имени. Если заменить на экземпляр формы (н-р self), то FindComponent() начнет находить. Дизайнтаймовые TMenuItem нормально ищутся FindComponent(). В чем смысл таких советов ? Для автоматического удаления всех TMenuItem при удалении FPopupMenu ? Упускают проблему с поиском как несущественную ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2018, 12:28 |
|
||
|
TMenuItem и FindComponent()
|
|||
|---|---|---|---|
|
#18+
L_argoпроблему с поиском как несущественную ?Мое воображение отказывается мне подсказывать, зачем для элемента меню нужно вызывать FindComponent. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2018, 14:19 |
|
||
|
TMenuItem и FindComponent()
|
|||
|---|---|---|---|
|
#18+
Поддерживаю предыдущего оратора. Хочешь найти TAction обращайся к TActionList, хочешь найти TField обращайся к TDataset, хочешь найти TMenuItem ( ITEM MENU - пункт меню) обращайся к TMenu, а не как не к форме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2018, 14:42 |
|
||
|
TMenuItem и FindComponent()
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_L_argoпроблему с поиском как несущественную ?Мое воображение отказывается мне подсказывать, зачем для элемента меню нужно вызывать FindComponent.Тренируй. :) Для ORM. В опред. момент нужно скрыть/деактивировать некот. пункты. Есть единая система управления видимостью/редактированием контролов, колонок гридов и т.д. В ней список контролов и условия. зы: Конеш можно было и список указателей сделать, но мне показалось, что список живых имен будет удобнее, н-р для отладки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2018, 16:26 |
|
||
|
TMenuItem и FindComponent()
|
|||
|---|---|---|---|
|
#18+
L_argoВ опред. момент нужно скрыть/деактивировать некот. пункты. Есть единая система управления видимостью/редактированием контролов, колонок гридов и т.д.Именно для этого придуманы TAction L_argoВ ней список контролов и условия.А так будет набор TAction L_argo: Конеш можно было и список указателей сделать, но мне показалось, что список живых имен будет удобнее, н-р для отладки.Чем Component.Name не устроил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2018, 16:57 |
|
||
|
TMenuItem и FindComponent()
|
|||
|---|---|---|---|
|
#18+
L_argo, если нужен поиск по имени, то следует предварительно у динамически созданных элементов меню инициализировать свойство .Name:= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2018, 17:00 |
|
||
|
TMenuItem и FindComponent()
|
|||
|---|---|---|---|
|
#18+
L_argo, сама делфи owner'ом item'ов делает форму, в чем можно легко убедиться. зачем ты читаешь какие-то советы - не понятно. делай так же, как среда и проблем не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2018, 09:58 |
|
||
|
TMenuItem и FindComponent()
|
|||
|---|---|---|---|
|
#18+
L_argo, можешь эту ссылку посмотреть: https://www.gunsmoker.ru/2010/05/90.html её всегда стоит иметь в виду, когда что-то находишь в интернетах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2018, 10:00 |
|
||
|
TMenuItem и FindComponent()
|
|||
|---|---|---|---|
|
#18+
//если нужен поиск по имени, то следует предварительно у динамически созданных элементов меню инициализировать свойство .Name:= Ну дык само собой. Непонятно зачем про это напоминать. makhaonсама делфи owner'ом item'ов делает форму, в чем можно легко убедиться. зачем ты читаешь какие-то советы - не понятно. делай так же, как среда и проблем не будет.Ну эти советы приведены на серьезных ресурсах, н-р в документации Эмбы. Вот меня и интересует, почему дают такие советы, в то время когда сама среда делает по другому. // Хочешь найти TAction обращайся к TActionList, хочешь найти TField обращайся к TDataset, хочешь найти TMenuItem (ITEM MENU - пункт меню) обращайся к TMenu, а не как не к форме Офигенный по мудрости совет. Но бессмысленный. зы: всем спасибо. Вопрос закрыт, т.к. скатился в флейм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 09:54 |
|
||
|
TMenuItem и FindComponent()
|
|||
|---|---|---|---|
|
#18+
L_argo, 50 на 50. Эмба, в самом деле так делает. Как раз таки сторонние ресурсы делают как среда: http://delphiworld.narod.ru/base/create_popup_menu_items.html Nobody's perfect. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 10:39 |
|
||
|
TMenuItem и FindComponent()
|
|||
|---|---|---|---|
|
#18+
L_argoВ чем смысл таких советов ? Для автоматического удаления всех TMenuItem при удалении FPopupMenu ? Упускают проблему с поиском как несущественную ? Проблема с поиском - это ваша фантазия. Никто этим не занимается, по крайней мере через форму. Вы придумали проблему, вы знаете метод её решения, зачем этот топик вообще ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 10:43 |
|
||
|
TMenuItem и FindComponent()
|
|||
|---|---|---|---|
|
#18+
makhaonL_argo, 50 на 50. Эмба, в самом деле так делает. Как раз таки сторонние ресурсы делают как среда: http://delphiworld.narod.ru/base/create_popup_menu_items.html Nobody's perfect.+1. Так и есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 10:45 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39640684&tid=2040925]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 510ms |

| 0 / 0 |
