-
Добрый день/вечер/утро Подскажите, пожалуйста, где найти стандартный (тот, которым пользуется Delphi) редактор для пунктов меню. Он появляется, когда нажимаем на компонент в дизайнере IDE. Напоминает окно с работающей менюшкой, при выделении пункта, его свойства появляются в ObjectInspector. Подскажите, где лежат исходники, либо откуда именно этот редактор вызывается. Спасибо
-
А исходников нет
-
у меня уже появилась эта догадка.. Тогда вопрос - а я могу его руками вызвать? Если да, как?
-
В дизайнере ?
-
Если ваш компонент порождён от TMainMenu, TPopupMenu то редактор должен подхватиться сам
-
У меня в проэкте дизайнер, в котором есть возможность регистрировать компоненты и обработчики их свойств. Нужно только иметь возможность вызова обработчика, и написать для него несложный клас-интерфейс вызовов. Например, для набора строк (TStrings) вызывается редактор строк.. Неплохо бы так же вызывать Delphi'йный редактор пунктов для PopupMenu.
-
еще поясню... Зарегистрировать пытаюсь TPopupMenu (либо TMainMenu, неважно). Компонент добавил, но дизайнер не знает чем редактировать свойства Items (TMenuItems). Для подобных свойств есть возможность регистрировать обработчики типа TPropertyEditor, где необходимо руками вызвать дельфийный дизайнер пунктов меню.
-
> У меня в проэкте дизайнер
Второй раз спрашиваю: Это всё в Run-Time или Design-Time ?
-
Run-Time проэкт умеет "на лету" рисовать и создавать формы
-
В Run-Time редакторы свойств и компонентов не компилятся. Поэтому вы рисуете свои редакторы, которые потом и вызываете.
-
Согласен. Но иногда можно в Run-Time вызывать стандартные. Если они написаны как дельфийные классы. По сути то же самое, что написать самому, только играться меньше :)
-
> alekarbuzov (10.07.08 16:41) [10]Редакторы всегда работают в run-time. Только в одном случае это среда IDE с которой редактор работать умеет, а в другом - среда приложения, о которой редактор не знает ничего. Значит, нужно сэмулировать среду IDE в приложении. Для этого можно использовать пакет dsgnide и другие. Но тогда, во-первых упремся в Proxies, во-вторых, придется еще попахать, и, в-третьих, будет нарушено лицензионное соглашение. > Если они написаны как дельфийные классы. Все редакторы написаны как дельфишные классы. Только это не поможет. Никакой редактор не может работать где угодно, любой редактор умеет работать только в известной ему среде IDE. И все. Но может ОЧЕНЬ сильно помочь вот что: http://www.dreamcompany.com/
-
Правильно. Для примера, строку подключения к базе можно задать след образом: function DesignConnectString(): String; //возвращает строку подключения (процедура из чужого модуля) данный метод показывает окошко, в котором задаются все параметры, а после его закрытия формирует строку подключения и возвращает ее в качестве результата. Таким образом мне необходимо только в нужный момент вызвать эту штуку и записать куда надо полученный параметр.. Не нужно рисовать свою форму с настройками подключения. Не нужно создавать и удалять ее. Всю работу берет на себя написанный кем-то класс. Мне бы подобную штуку для TPopupMenu...
> to Юрий Зотов Сайт посмотрел, спасибо. Много интересного, но по решению моей задачи пока ничего не нашел. Почитаю еще..
-
> function DesignConnectString(): String; //возвращает строку подключения (процедура из чужого модуля)
Именно из чужого. В стандартной поставке такой функции нет, следовательно никто не мешает написать свой редактор PopupMenu
-
Принял аналогичное решение. Всем спасибо
|