Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 21.10.2009, 18:27   #1
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию Динамическое создание компонента из компонента))

Доброго времени суток уважаемые эксперты! Наткнулся на такую проблемму:
Наследую класс своего компонента от класса TComponent.
В какой-то момент мне надо создать на форме компонент ToolBar. Пишу вот так:
Код:
procedure TDBBunch.SetDBGrid(Grid:TDBGridEh);
begin
  FDBGridEh:=Grid;
      FToolBar:= TToolBar.Create(self);
  FToolBar.Parent:=self;
  FToolBar.Left:=Grid.Left;
  FToolBar.Top:=Grid.Top - 20;
  FToolBar.Width:=Grid.Width;
  FToolBar.Height:=15;
  FToolBar.Flat:=true;
  FToolBar.Align:=alCustom;
  FToolBar.Width:=200;
end;
Тоесть когда я связываю грид со своим компонентом, на форме должен быть создан ToolBar. Но проект не хочет компилироваться, ругается на несовпадение типов: TWinControl и TDBBunch (TDBBunch - это название моего компонента). Вопрос, как это можно вылечить? Заранее спасибо.
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 21.10.2009, 18:35   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

у вас не подходящая основа для компонента...
вам нужен TWinControl как и сказала ошибка
или вам надо чтоб на форме тулбар появлялся?(тогда берем Parent вашего компонента)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.10.2009, 18:45   #3
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Вот TWinControl не очень хочется делать... Вот именно на форме мне его и нужно создать... Откуда мне ее Parent можно узнать?
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 21.10.2009, 18:49   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

ваш компонент на форме же
вот его парент и есть форма
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.10.2009, 19:04   #5
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Ну это я понимаю, только не понимаю откуда мне его вытягивать((. У меня же нету в компоненте данного свойства((. И еще! Если беру Parent из моего Grid-а. Все нормально работает))) Только я не могу создавать вручную кнопки на ToolBar, и соответственно не могу обрабатывать его события((
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 21.10.2009, 19:51   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

почему не можете?
запомнив ссылку и назначив ему методы свою все можно...
а насчет парента то там Owner
через if Owner is TWinControl проверяем=)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.10.2009, 22:41   #7
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Что-то я вас не сильно понимаю, зачем переназначать методы?
Я создаю ToolBar. Он рисуется на форме в режиме проектирования программы -> должны быть назначены стандартные обработчики... Почему я в режиме проектирования не могу создать нужное мне количество кнопок на нем?
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 21.10.2009, 23:33   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

если не ошибаюсь то есть такая проблема что один компонент не может создать еще один компонент в дизайн тайме(чтоб его можно было настроить)
можно сделать чтото из коллекций...и там уже пытатся редактировать бары
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.10.2009, 00:08   #9
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

((((Мдя... Очень плохо...
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание компонента Bayazet Общие вопросы Delphi 4 17.12.2008 17:48
Создание компонента russianstrike Компоненты Delphi 15 01.10.2008 19:22
Создание компонента. Черничный Компоненты Delphi 2 01.06.2008 23:28
Динамическое создание компонента проходит нормально, но WB.Navigate не выполняется. В чём проблема? AVer Работа с сетью в Delphi 1 02.10.2007 14:48