Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.05.2012, 17:15
Сергей77 Сергей77 вне форума
Прохожий
 
Регистрация: 14.05.2012
Сообщения: 31
Репутация: 10
По умолчанию RichEdit и DLL

Подскажите, пожалуйста, примером (или последовательностью действий), как решить следующую задачу:
- на базе компонента TRichEdit необходимо сделать ActiveX компонент, который дублирует все атрибуты, методы и события
- кроме этого, функционал нового компонента будет немного расширен

Условия:
- конечный объект д.б. представлен в виде DLL библиотеки, которую потом будет использовать другое ПО (д.б. доступ к атрибутам, методам и событиям извне)
- среда разработки Delphi7

Заранее спасибо.
Ответить с цитированием
  #2  
Старый 17.05.2012, 08:54
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

-создаешь новый проект Active Form
-кидаешь на форму RichEdit
-меню View - Type Library
-у интерфейса IActiveFormX создаешь новые свойства/методы
-в реализации этих свойств(Get_/Set_)/методов обращаешься к RichEdit
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 17.05.2012, 20:14
Сергей77 Сергей77 вне форума
Прохожий
 
Регистрация: 14.05.2012
Сообщения: 31
Репутация: 10
По умолчанию

Спасибо.

Уточнения:
- правильно я понимаю, что я делаю новые свойства у ФОРМЫ, на которой лежит RichEdit, но в реализации могу работать со свойствами RichEdit?
- аналогично с событиями?
- и соответственно как должна выглядеть реализация (например для размера шрифта) если я не хочу создавать новое свойство, но хочу иметь доступ к его изменению и просмотру.

Заранее спасибо.
Ответить с цитированием
  #4  
Старый 18.05.2012, 09:28
Сергей77 Сергей77 вне форума
Прохожий
 
Регистрация: 14.05.2012
Сообщения: 31
Репутация: 10
По умолчанию

Со свойствами разобрался, как доступ получить.

Не могу никак доступ к событиям компонента получить.
Подскажите, пожалуйста, примером.
Ответить с цитированием
  #5  
Старый 18.05.2012, 11:28
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

посмотри как сделаны события у 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  
Старый 28.05.2012, 15:54
Сергей77 Сергей77 вне форума
Прохожий
 
Регистрация: 14.05.2012
Сообщения: 31
Репутация: 10
По умолчанию

Сделал доступ к событию

Код:
procedure TREForm.RichEditKeyPress(Sender: TObject; var Key: Char);
begin
  if FEvents<>nil then FEvents.OnREKeyPress(Key);
end;
Bargest: оформляем код тегами!

из внешней программы получили доступ к этому событию (OnREKeyPress) ... но отлавливаются только буквы и цифры, а например стрелочки (влево, вправо, вниз, вверх) нет

как решить такую проблему, что обрезался диапазон клавиш, которые может отловить RichEdit?

и еще момент --- при нажатии стрелок влево/вправо/вверх/вниз курсор внтури ричэдита не перемещается, а переходит на другой компонент внешней программы

Последний раз редактировалось Bargest, 28.05.2012 в 17:30.
Ответить с цитированием
  #7  
Старый 28.05.2012, 17:03
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

а OnKeyPress не срабатывает на стрелочки.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Сергей77 (29.05.2012)
  #8  
Старый 28.05.2012, 18:08
Сергей77 Сергей77 вне форума
Прохожий
 
Регистрация: 14.05.2012
Сообщения: 31
Репутация: 10
По умолчанию

Понял.

А как с вопросом того, что по стрелочкам управления курсора происходит переход на другой элемент внешней формы, а не переход между символами внутри пространства RichEdit?

То есть мне надо, чтобы когда был курсор внутри ричэдита, то по нажатию стрелок курсора не было бы перехода на другие компоненты.

Последний раз редактировалось Сергей77, 29.05.2012 в 15:02.
Ответить с цитированием
  #9  
Старый 30.05.2012, 08:50
Сергей77 Сергей77 вне форума
Прохожий
 
Регистрация: 14.05.2012
Сообщения: 31
Репутация: 10
Печаль

Люди, помогите....
Хоть какие-нибудь версии почему не работают стрелки внутри поля ввода после того, как форма на которой оно расположено, становится ActiveX?
Может какие события/методы перегрузить надо или настройки подкрутить?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:33.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter