Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2009, 11:39   #1
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию Ошибки в собст. компоненте. Нужнен наставник.

Начал делать свой компонент, из ошибок не выхожу А нужен вобщем невизуальный компонент, в котором бы была лишь коллекция RichEdit'ов. Наигрался, вроде получилось, но не работает Подскажите что не так.
Вложения
Тип файла: rar Coll.rar (940 байт, 11 просмотров)
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Старый 16.10.2009, 12:18   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

долго пытался понять смысл сего творения....но пока чет не вышло...
у меня все скомпилировалось...компонент создался

нужна помощь, задавайте вопросы, я помогу.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 16.10.2009 в 12:20.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.10.2009, 13:03   #3
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
долго пытался понять смысл сего творения....но пока чет не вышло...
у меня все скомпилировалось...компонент создался

нужна помощь, задавайте вопросы, я помогу.
Компонент - просто шаблон будущего компонента, потому простой. Он и у меня нормально устанавливается. Я не могу сделать так, чтобы в среде Дельфи можно было бы добавлять элементы коллекции. Програмно знаю как, а вот в среде - нет. А нужно именно в среде, например, как добавляются элементы СтатусБара. Еще нужно чтобы отдельный элемент имел поле TStrings и щелкая по нему открывался бы редактор, чтобы в это поле записать текст можно было бы. Спасибо.
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Старый 20.10.2009, 20:37   #4
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Цитата:
Програмно знаю как, а вот в среде - нет. А нужно именно в среде, например, как добавляются элементы СтатусБара
Для этих целей применяются TCollection и TCollectionItem.
Скандербег вне форума Ответить с цитированием
Старый 22.10.2009, 00:37   #5
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию

Цитата:
Сообщение от Скандербег Посмотреть сообщение
Для этих целей применяются TCollection и TCollectionItem.
Это понятно и так Выше я выложил исходник.
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Старый 22.10.2009, 07:39   #6
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Теперь понятно.
В TItems вместо FOwner : TPersistent; надо указывать класс своего компонента: FOwner : TColl;
Код:
  TItemClass = class of TItem;
.....
  TItems = class(TCollection)
   private
     FOwner  : TColl;
     function GetItem(Index: Integer): TItem;
     procedure SetItem(Index: Integer; Value: TItem);
   protected
     function GetOwner: TPersistent; override;
   public
    constructor Create(Owner: TColl);
.....
  TColl = class(TComponent)
  private
    fItems: TItems;
    function GetItemClass: TItemClass; virtual;
.....
constructor TItems.Create(Owner: TColl);
begin
  if Owner <> nil then
    inherited Create(Owner.GetItemClass)
  else
    inherited Create(TItem);
  FOwner := Owner;
end;

function TColl.GetItemClass: TItemClass;
begin
  Result := TItem;
end;
Если ничего не забыто, то примерно так.

Но (просто интересно) как вы собираетесь добавлять в коллекцию сами RichEdit'ы в среде дельфи? Почему такой вопрос.
Вот представляю, есть у меня этот замечательный не визуальный компонент, положил его на форму, а теперь что? Надо теперь с RichEdit'ами что-то делать. Заранее их расположить на форме (формах) или они должны создаваться при добавлении элементов в коллекцию?
Если при добавлении в коллекцию, то как сделать чтобы они принадлежали какой-то форме?
Если заранее, то, видимо, в компоненте нужно свойство, которое "захватывает" расположенные на форме RichEdit'ы.
Есть ли решение как предполагается использовать?

Последний раз редактировалось Скандербег; 22.10.2009 в 07:54.
Скандербег вне форума Ответить с цитированием
Старый 22.10.2009, 11:25   #7
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию

Вы правы. Достаточно будет TStrings, мне то нужно всего навсего редактор Delphi, который выскакивает, когда правишь текст в TMemo или TRichEdit
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка в компоненте DeDoK Общие вопросы Delphi 2 22.09.2009 01:39
Нужен наставник по С++ vs-kornilov Фриланс 5 07.03.2009 05:40
Вопрос о компоненте ShellListViev Bill Gates Общие вопросы Delphi 2 28.11.2007 22:35
Canvas в компоненте ListBox Миша Общие вопросы Delphi 3 24.09.2007 20:38