Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фреймы и ДЛЛ, продолжаю тему про плагины 
:(
    Опции темы
<Spawn>
Дата 22.2.2004, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



хотелось бы на каждый TabSheet получаемый из ДЛЛ вешать фрейм, но при попытке его там создать пишет - "Сontrol frFileDir has no parent window". Этого можно избежать или нужно искать другой путь?

Ошибка есть даже при попытке вызвать подобное:

Код
function GetFrame(ParentWnd: TForm): TfrFileDir; stdcall;
begin
 Result := TfrFileDir.Create(ParentWnd);
end;


Это сообщение отредактировал(а) <Spawn> - 22.2.2004, 13:43


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
<Spawn>
Дата 22.2.2004, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Ошибку убрал - сейчас при загрузке TTabSheet фрейма на нем не видно. Вот тестовый код:

Код
procedure InitApplication(App: TApplication); stdcall;
begin
 Forms.Application := App;
end;

function GetTabSheet: TTabSheet; stdcall;
var
 TestFr: TfrFileDir;
begin
 Result := TTabSheet.Create(Forms.Application.MainForm);
 TestFr := TfrFileDir.Create(Forms.Application.MainForm);
 TestFr.ParentFont := False;
 TestFr.Parent := Result;
 TestFr.Align := alClient;
end;



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Cheba
Дата 22.2.2004, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62



Попробуй сделать фрейму Show. Может поможет...
PM MAIL ICQ   Вверх
<Spawn>
Дата 22.2.2004, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Cheba неканает( Не нравится мне что то такой вариант. Вроде как можно делать плагины на интерфейсах. Не знаешь ли где по этому можно че нить почитать, а то то что у меня есть не совсем то что мне нужно.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Cheba
Дата 22.2.2004, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62



2 <Spawn>
Цитата
Вроде как можно делать плагины на интерфейсах.
Где почитать не знаю. Но знаю, что интерфейсы нужно регистрировать в системе, Чтобы вызывать их нужен GUID, а он ложится в реестр при регистрации СОМ-объекта. Это слишком хлопотный путь. Если чего-то не так пойдет беды не оберешся. Но это только ИМХО.
PM MAIL ICQ   Вверх
<Spawn>
Дата 22.2.2004, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Cheba Нет итерфейсы не обязательно регистрироавть)) У меня есть по ним целая книга "Технология COM в Дельфи". Но пример плагина, который там там дан, не совсем то чего я хочу. Эту книгу я почти не читал еще - если что то прийдется в нее досконально с начала вникать.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Cheba
Дата 22.2.2004, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62



У меня есть книга "Delphi 6 и технология СОМ". Это ты оней? Там есть пример. Но я в нем не разбирался. Пожалуй, есть повод...
PM MAIL ICQ   Вверх
<Spawn>
Дата 23.2.2004, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Cheba Да я о ней smile.gif


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Cheba
Дата 24.2.2004, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62



Цитата
Нет итерфейсы не обязательно регистрироавть
Ан нет! Их регистрировать все-таки надо.
Цитата
Скомпилируем DLL и зарегистрируем эту библиотеку при помощи утилиты regsrv32.
Это из той книги стр. 61, 3-й абзац снизу.
Можеш также почитать в этой же книге как работает СОМ. Так обязательно ищется GUID объекта в реестре. А как можно найти GUID незарегистрированого объекта?
PM MAIL ICQ   Вверх
<Spawn>
Дата 24.2.2004, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Я про другой пример говорил - страница 37, тема "Использование интерфейсов для реализации модулей расширения", там ни чего про это не написано, и спокойно используются интрефейсы.

Это сообщение отредактировал(а) <Spawn> - 24.2.2004, 18:25


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
<Spawn>
Дата 24.2.2004, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



А тот пример, который упомянул ты, используется для создания COM Server-а, вот там и нужна регистрация.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Cheba
Дата 25.2.2004, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62



Цитата
Я про другой пример говорил - страница 37, тема "Использование интерфейсов для реализации модулей расширения", там ни чего про это не написано, и спокойно используются интрефейсы.

Так то ж внутри одной проги! А тебе нужны плагины. В отдельном файле чтоб был фрейм, или чего там. Для этого нужно регистрировать. Или я совсем не о том.

2 Vit, или еще кто-нить знающий
Рассудите, ато я не очень хорошо разбираюсь в данном вопросе. Может я тут вообще чушь порю... confused.gif
PM MAIL ICQ   Вверх
Ingvar Riga
Дата 1.4.2004, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.3.2004

Репутация: нет
Всего: нет



Братья! Точно такая же фигня приключилась и со мной. Только я юзаю Builder 6.0.
Сегодня я эту проблему замочил.

В общем, программа сама создает TTabSheet, передает ее в DLL, а там создается TFrame, на котором лежат контролы. Так вот, если среди них есть PageControl (ну, типа закладки) то все, адзац. При создании - ошибка " ...has no parent window " во всех остальных случаях - все в порядке.

В общем решение проблемы таково. Вместо TFrame используем TForm - простое окно, но только у него ставим свойство BorderStyle=bsNone. Впрочем, если оставить Sizeble, то тоже ничего - есть простор для вариантов оформления. Получается окно вписанное в TTabSheet. А если их сделать несколько, то можно сварганить MDI-MDI интерфейс. То есть Дочернее окно будет содержать в себе еще несколько дочерних, и т.д.

Короче темой плагинов в таком разрезе я тоже занимаюсь.
Вопросы? Пишите: [email protected]
Поговорим. bored.gif
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0554 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.