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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Dll и TreeView, Не видно надписи 
:(
    Опции темы
Гость_BoB
Дата 26.7.2004, 12:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Проблема в следущем: В DLL находится форма, на форме панель, на панели TreeView. Прорисовка контролов производится следущим образом:

fmDLL.TreeView.Parent:= nil;
fmDLL.TreeView.ParentWindow:= hPanel;

Где hPanel - хендл панели, на которой прорисовывается контрол.
Так вот само дерево показывается, картинки дерева прорисовываются, а надписи НЕТ!!! Кстати и картинки тоже странно себя видут, пропадают иногда... Помогите плиз!!!!
  Вверх
<Spawn>
Дата 26.7.2004, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Какое окно? Модальное или нет? Если не модальное, то ты синхронизуешь обьект Application ДЛЛ-ки с Аппликейшеном твоего проекта?

Это сообщение отредактировал(а) <Spawn> - 26.7.2004, 16:26


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


Новичок



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

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



Цитата
Какое окно? Модальное или нет? Если не модальное, то ты синхронизуешь обьект Application ДЛЛ-ки с Аппликейшеном твоего проекта?

Объясни плиз поподробнее я не очень понимаю, что значит синхронизировать?? Не мог бы ты кусочек кода написать?? Заранее спасибо!!
PM MAIL   Вверх
<Spawn>
Дата 27.7.2004, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Елси я правильно помню, то в ДЛЛ-ке пиши:
Код
Uses ...Forms;

procedure InitApplication(const App: TApplication);
begin
 Forms.Application := App;
end;

exports
 ...,
 InitApplication;


в своей программе перед созданием окна пишешь:

Код
InitApplication(Application);



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


Новичок



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

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



Ну если это называется синхронизировать, то я это уже давно сделал... А больше никаких советов нет???
PM MAIL   Вверх
<Spawn>
Дата 27.7.2004, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



ShimON Ну я просто так выразился.smile.gif
Мне, кстати, непонятно, зачем все вот эти манипуляции:

Код
fmDLL.TreeView.Parent:= nil;
fmDLL.TreeView.ParentWindow:= hPanel;


Можно ведь ни чего не трогая разместить на форме, описать логику работы и поместить в ДЛЛ. И еще hParent - это хендл формы ДЛЛки или твоей главной формы?


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


Новичок



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

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



Цитата
Можно ведь ни чего не трогая разместить на форме, описать логику работы и поместить в ДЛЛ...

Если имеется ввиду чтобы в главной форме уже всё было во время создания формы, а логику писать в длл, то это не подходит по замыслу. Замысел в том чтобы сделать плагин, причём каждый создатель плагина должен мочь рисовать на моей панели всё что захочет...


Цитата
И еще hParent - это хендл формы ДЛЛки или твоей главной формы?

хендл главной формы, а что ты имел ввиду говоря зачем те строки которые я написал??? А как по другому прорисовать контролы из длл на главной форме, может тебе это проще будет предложить??? Заранее спасибо smile.gif
PM MAIL   Вверх
<Spawn>
Дата 28.7.2004, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



ShimON
Контролы из ДЛЛки не осбоенно то дружат с приложением. Попробуи использовать, либо пакеты Дельфи, либо пиши ActiveX smile.gif


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


Новичок



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

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



Цитата
ShimON
Контролы из ДЛЛки не осбоенно то дружат с приложением. Попробуи использовать, либо пакеты Дельфи, либо пиши ActiveX smile.gif

Спасибо за совет, но пакеты мне не подойдут по причине того, что требуется хоть какая-нибудь универсальность, а вот насчёт ActivеX я подумаю, правда с ними я ещё ни разу не работал, расскажи, пожалуйста, где можно достать инфу и как это можно применить в моей ситуации.
PM MAIL   Вверх
<Spawn>
Дата 29.7.2004, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Для того чтобы создать ActiveX из компонента достаточно пойти в New->Other->ActiveX->ActiveX Control и выбрать класс из которого будет слеплен ActiveX. После этого регаешь его и подключаешь к своему проекту полученый TLB файл. Когда нужно внести изменения - то просто правишь код и формирушь новый .ocx файл. Для более сложных структур типа панель или группа с разными компонетами, пока приходит только следующая мысль - пишется наследник от нужного класса, на котором динамически формирются нужные контролы и реализуется вся функциональность, после чего регистрируется данный класс и опять же лепится ActiveX за пару кликов. Но вот только вопрос - зачем тебе такого рода контролы в твоем приложении, если они все равно не могут общаться с этим приложением стандартными способами(ну разве что организовать обмен сообщениями или создать COM сервер из твоего приложения, для получения внешних контролов доступа к каким то его свойствам или воспользоваться какой то другой технологией)?

Это сообщение отредактировал(а) <Spawn> - 29.7.2004, 20:03


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


Новичок



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

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



Спасибо тебе <Spawn> Я буду думать.... В любом случае ты мне очень помог!!!
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.0498 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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