06.03.2013, 07:06 | #1 |
Участник
|
Где находится метод обработки нажатия на MenuItemButton
Добрый день!
В баттон-груп на форме имеется MenuItemButton, в которой определены следующие свойства: MenuItemType: Display MenuItemName: Qwerty123 Метод clicked не переопределен. Скажите, где тогда может содержаться метод обработки клика по кнопке? |
|
06.03.2013, 07:47 | #2 |
Участник
|
Хм. Если метод не переопределён - это ещё не значит что его вообще нет. Есть базовая функциональность ядра, которая распологается в системных методах. Их код не доступен ни для изменения ни для просмотра. Но для изменения стандартного поведения системных методов есть возможность перекрыть эти базовые методы. Тогда создаётся пользовательский метод, код которого уже можно увидеть и изменить. А базовый метод вызывается из такого перекрытого метода при помощи ключевого слова super().
|
|
06.03.2013, 08:11 | #3 |
Участник
|
S.Kuskov, про перекрытие и метод super понятно, вопрос в том, как тогда происходит исполнение кода при нажатии? Метод супер - это исполнение конструктора базового класса, ведь так? Тогда он для всех контроллов данного класса одинаков.
Допустим тогда, что при нажатии на какую-либо кнопку вызывается некая форма. Если это делается в методе super, тогда для каждой кнопки при нажатии вызывались бы те же самые формы, вследствие выше сказанного про одинаковость кода. Однако, при нажатии одной кнопки вызывается одна форма, при нажатии другой - другая... а значит где-то есть метод clicked, либо какой-то другой, который и вызывает для конкретной кнопки конкретную форму, вот его, этот clicked-подобный метод мне и нужно бы найти.... |
|
06.03.2013, 08:38 | #4 |
Участник
|
Именно так.
Это если у этих кнопок свойства будут одинаковые. На результат метода влияет же не только заложенный в него алгоритм, но и входные параметры, внутреннее состояние объекта. Описанные в вашем первом сообщении свойства кнопки (MenuItemType и MenuItemName) как раз и влияют на то какое именно действие будет выполняться методом clicked. |
|
06.03.2013, 08:49 | #5 |
Участник
|
Vasiliusis
Ну так по умолчанию, в смысле без перекрытия, выполняется супер(), который у каждого объекта (например, у кнопки обычной и МенюИтемской ) различны. upd PS: А что именно вам необходимо сделать, что так рьяно хочется влезть внутрь? Последний раз редактировалось LeonDerCom; 06.03.2013 в 08:52. |
|
06.03.2013, 10:31 | #6 |
Участник
|
Если для вашего MenuItemButton не перекрыт метод clicked(), ядро системы будет работать с тем MenuItem, который указан в свойствах. Это значит, что если менюитем ссылается на класс, ищите метод main() класса с именем, заданным в свойствах этого менюитема. Если менюитем ссылается на форму или отчет, аналогично ищите форму или отчет по такому же алгоритму.
__________________
// no comments |
|
|
|