|
#1
|
|||
|
|||
RichEdit и DLL
Подскажите, пожалуйста, примером (или последовательностью действий), как решить следующую задачу:
- на базе компонента TRichEdit необходимо сделать ActiveX компонент, который дублирует все атрибуты, методы и события - кроме этого, функционал нового компонента будет немного расширен Условия: - конечный объект д.б. представлен в виде DLL библиотеки, которую потом будет использовать другое ПО (д.б. доступ к атрибутам, методам и событиям извне) - среда разработки Delphi7 Заранее спасибо. |
#2
|
||||
|
||||
-создаешь новый проект Active Form
-кидаешь на форму RichEdit -меню View - Type Library -у интерфейса IActiveFormX создаешь новые свойства/методы -в реализации этих свойств(Get_/Set_)/методов обращаешься к RichEdit Пишу программы за еду. __________________ |
#3
|
|||
|
|||
Спасибо.
Уточнения: - правильно я понимаю, что я делаю новые свойства у ФОРМЫ, на которой лежит RichEdit, но в реализации могу работать со свойствами RichEdit? - аналогично с событиями? - и соответственно как должна выглядеть реализация (например для размера шрифта) если я не хочу создавать новое свойство, но хочу иметь доступ к его изменению и просмотру. Заранее спасибо. |
#4
|
|||
|
|||
Со свойствами разобрался, как доступ получить.
Не могу никак доступ к событиям компонента получить. Подскажите, пожалуйста, примером. |
#5
|
||||
|
||||
посмотри как сделаны события у TActiveFormX, метод Initialize:
Код:
procedure TActiveFormX.Initialize; begin inherited Initialize; OnActivate := ActivateEvent; ... Код:
procedure TActiveFormX.ActivateEvent(Sender: TObject); begin if FEvents <> nil then FEvents.OnActivate; end; Код:
FEvents: IActiveFormXEvents; Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Сергей77 (18.05.2012)
|
#6
|
|||
|
|||
Сделал доступ к событию
Код:
procedure TREForm.RichEditKeyPress(Sender: TObject; var Key: Char); begin if FEvents<>nil then FEvents.OnREKeyPress(Key); end; из внешней программы получили доступ к этому событию (OnREKeyPress) ... но отлавливаются только буквы и цифры, а например стрелочки (влево, вправо, вниз, вверх) нет как решить такую проблему, что обрезался диапазон клавиш, которые может отловить RichEdit? и еще момент --- при нажатии стрелок влево/вправо/вверх/вниз курсор внтури ричэдита не перемещается, а переходит на другой компонент внешней программы Последний раз редактировалось Bargest, 28.05.2012 в 17:30. |
#7
|
||||
|
||||
а OnKeyPress не срабатывает на стрелочки.
Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Сергей77 (29.05.2012)
|
#8
|
|||
|
|||
Понял.
А как с вопросом того, что по стрелочкам управления курсора происходит переход на другой элемент внешней формы, а не переход между символами внутри пространства RichEdit? То есть мне надо, чтобы когда был курсор внутри ричэдита, то по нажатию стрелок курсора не было бы перехода на другие компоненты. Последний раз редактировалось Сергей77, 29.05.2012 в 15:02. |
#9
|
|||
|
|||
Люди, помогите....
Хоть какие-нибудь версии почему не работают стрелки внутри поля ввода после того, как форма на которой оно расположено, становится ActiveX? Может какие события/методы перегрузить надо или настройки подкрутить? |