Форум по 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.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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