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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2014, 14:33   #1
енотов
 
Регистрация: 17.12.2012
Сообщений: 8
Стрелка Новый компонент Gallery

Добрый день!

Мне нужно создать компонент, наследуемый от TGraphicControl и представляющий собой галерею.

Не могли бы вы подсказать, как правильно вписать в модуль нового компонента объект типа TOpenPictureDialog, чтобы он создавался в конструкторе нового компонента?
енотов вне форума Ответить с цитированием
Старый 14.12.2014, 14:48   #2
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

можно готовые использовать, например из TMS Component Pack - AdvImageView
beegl вне форума Ответить с цитированием
Старый 14.12.2014, 15:40   #3
енотов
 
Регистрация: 17.12.2012
Сообщений: 8
По умолчанию

по заданию нужен свой компонент
енотов вне форума Ответить с цитированием
Старый 15.12.2014, 09:31   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Не могли бы вы подсказать, как правильно вписать в модуль нового компонента объект типа TOpenPictureDialog, чтобы он создавался в конструкторе нового компонента?
Так же как и в класс. Объявить переменную в Private, создать в конструкторе, убить в деструкторе. Вызвать в X с передачей результата в Y.

Вообще вариант тупиковый. Создайте метод SelectImg и там создайте и убейте диалог. Ему нет смысла быть живым все время.
Человек_Борща вне форума Ответить с цитированием
Старый 15.12.2014, 09:46   #5
енотов
 
Регистрация: 17.12.2012
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Так же как и в класс. Объявить переменную в Private, создать в конструкторе, убить в деструкторе. Вызвать в X с передачей результата в Y.

Вообще вариант тупиковый. Создайте метод SelectImg и там создайте и убейте диалог. Ему нет смысла быть живым все время.
а не могли бы вы объяснить поподробнее?

Какой параметр нужно указывать в конструкторе у этой переменной?

Что значит вызвать в X с передачей результата в Y?
енотов вне форума Ответить с цитированием
Старый 15.12.2014, 09:55   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Смотри конструктор TGraphicControl. Ему передается параметр AOwner: TComponent. Значит в своем конструкторе должен обеспечить вызов конструктора родителя с этим параметром посредством inherited. Возможны и другие параметры при вызове своего конструктора, это на усмотрение создателя компонента и и исходя из логики его работы, но тогда его создание только динамически
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.12.2014, 10:52   #7
енотов
 
Регистрация: 17.12.2012
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Смотри конструктор TGraphicControl. Ему передается параметр AOwner: TComponent. Значит в своем конструкторе должен обеспечить вызов конструктора родителя с этим параметром посредством inherited. Возможны и другие параметры при вызове своего конструктора, это на усмотрение создателя компонента и и исходя из логики его работы, но тогда его создание только динамически
то есть просто в конструкторе написать:

inherited;
OpenPictureDialog1.Create(self) ?

и можно будет работать с этим компонентом так же как будто он располагается на форме?
енотов вне форума Ответить с цитированием
Старый 15.12.2014, 10:57   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
то есть просто в конструкторе написать:
Не. Лучше учебник взять
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как поставить новый компонент?! pero92 Общие вопросы Delphi 1 26.03.2012 07:22
как установить новый компонент? GTX Компоненты Delphi 1 28.02.2012 18:12
Новый компонент Tradua C++ Builder 2 09.02.2012 23:03
Новый компонент. polarity Общие вопросы Delphi 3 16.06.2011 12:28
новый компонент Zloi_tapoG Компоненты Delphi 2 30.10.2010 17:04