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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2008, 09:45   #1
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию Новый класс в Dll

Компонент TDateTimePicker не может содержать пустую дату. Создал компонент из TDateTimePicker и TMaskEdit все работает при помещении данного компонента на форму вручную (из палитры компонентов). Попробовал создать Dll с данных классом. Хотел чтобы функция Dll создавала данный компонент и возвращала его. Но в основном модуле програма не знает такого типа (TMyDate) подскажите что делать.
Заранее спасибо.

MyDate.rar
AlexandrSid вне форума Ответить с цитированием
Старый 25.08.2008, 11:19   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Создать визуальный объект в dll и подключить его к форме в приложении не получится. Оба объекта должны быть созданы в пределах одного объекта Application (или оба в dll или оба в приложении). Основная проблема с регистрацией классов и вызовах методов Assign, которые делаются внутри методов VCL.

--------------------------------
Если просто создать класс в dll и использовать его в своем приложении, то так:

Нужно создать абстрактный класс. Его мы будем использовать при объявлении переменных в главном модуле.

В dll будет реализация этого класса и dll будет возвращать ссылку на этот класс. Получить ссылку на класс главная форма сможет создать его экземпляр.

Что-то вроде этого (в главной форме):

var D : TAbstractMyClass;
begin
D := getMyClass.Create(...

здесь getMyClass - функция dll, которая возвращает ссылку (class of TAbstractMyClass) на ревльный класс, реализаованный в dll.

Пример во вложении.
Вложения
Тип файла: rar test.rar (4.2 Кб, 50 просмотров)

Последний раз редактировалось alexBlack; 25.08.2008 в 12:56.
alexBlack вне форума Ответить с цитированием
Старый 25.08.2008, 20:26   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

если пишем компонент то используй BPL (все компоненты Delphi лежат в BPL ) Это специальный вид DLL для работы с компонентами Delphi и все проблемы с переменной Application там уже решены.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 06.05.2009, 11:55   #4
peha84
 
Регистрация: 06.05.2009
Сообщений: 4
Смущение ...

Цитата:
Сообщение от evg_m Посмотреть сообщение
если пишем компонент то используй BPL (все компоненты Delphi лежат в BPL ) Это специальный вид DLL для работы с компонентами Delphi и все проблемы с переменной Application там уже решены.
Извиняюсь за наглость, но не подскажете, ли, как реализовать, через BPL, кнопочку (TButton), чтоб ее можно было бы поместить на форму.
peha84 вне форума Ответить с цитированием
Старый 06.05.2009, 20:28   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

delpi7

меню component -> install component создаем свой проект bpl

меню component -> new component создаем компонент

меню file -> new -> other -> вкладка new -> package
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 06.05.2009 в 20:30.
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс Юлёк Фриланс 6 15.06.2008 15:00
Мой класс SunKnight Общие вопросы Delphi 2 02.05.2008 14:02
геометрия 9 класс VikaNovak Помощь студентам 2 27.04.2008 00:40
класс TTypedComObject toledo Общие вопросы Delphi 1 17.04.2008 01:32
Класс TStringList Pblog Обсуждение статей 0 27.05.2007 02:13