Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 4698
Рейтинг: 426
#1: 2009-03-19 19:24:58 ЛС | профиль | цитата
У меня такое пожелание - давайте добавим в DLL поддержку форм. к тому же мой пример явно доказывает такую возможность.
карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2009-03-19 20:37:22 ЛС | профиль | цитата
только под роспись о том, что все последствия использования форм в таких проектах пользователь берет на себя
карма: 27
0
Ответов: 590
Рейтинг: 19
#3: 2009-03-19 20:40:54 ЛС | профиль | цитата
Assasin писал(а):
добавим в DLL поддержку форм

так-то не плохая идея... как раз плагины для программ можно писать..
Dilma писал(а):
все последствия использования форм в таких проектах пользователь берет на себя

гм... а что может пойти ни так?
карма: 0

0
Ответов: 3851
Рейтинг: 159
#4: 2009-03-19 23:15:39 ЛС | профиль | цитата
когда-то очень давно кто-то приводил свой вариант как это сделать, деталей не помню может у кого сохранилось..
карма: 0
начавший
0
Администрация
Ответов: 15295
Рейтинг: 1519
#5: 2009-03-20 00:41:35 ЛС | профиль | цитата
EcsTasY писал(а):
гм... а что может пойти ни так?

один из примеров - открыть любой плагин к hiasm и вставить туда эту форму. Посмотреть как после этого у вас будет все работать.
карма: 27
0
Разработчик
Ответов: 4698
Рейтинг: 426
#6: 2009-03-20 15:36:04 ЛС | профиль | цитата
Ну и че? Все работает! Вот пример плагина:
#pas
Make(delphi)
ver(4.01 build 177)
Add(hiPlugs,2953706,42,105)
{
}
Add(ChildForm,2340360,91,105)
{
}
BEGIN_SDK
Add(EditMulti,7773960,21,21)
{
}
Add(MainForm,6726996,35,105)
{
Left=35
Top=105
Visible=1
Enabled=1
}
Add(ChildForm,14678228,119,105)
{
}
BEGIN_SDK
Add(EditMulti,6916002,21,21)
{
Width=314
Height=130
}
Add(MainForm,10839223,35,105)
{
Left=35
Top=105
Width=352
Height=78
}
Add(Edit,9545966,161,56)
{
@Hint=#12:Путь к файлу|
Left=15
Top=15
Width=240
Text="Файл"
AddHint(43,-11,82,13,@Hint)
}
Add(Button,5804258,98,105)
{
@Hint=#11:Играть файл|
Left=285
Top=15
Caption="Играть"
link(onClick,6854628:doPlay,[])
AddHint(106,-40,80,13,@Hint)
}
Add(Button,5634794,35,56)
{
@Hint=#13:Диалог выбора|
Left=265
Top=15
Width=15
Caption="..."
link(onClick,1715382:doExecute,[])
AddHint(169,-32,94,13,@Hint)
}
Add(ODialog,1715382,98,56)
{
Filter="Mp3|*.mp3|"
link(onExecute,9545966:doText,[])
}
Add(MediaPlayer,6854628,161,105)
{
link(FileName,9545966:Text,[])
}
END_SDK
END_SDK

------------ Дoбавленo:

Мне только одно непонятно:
Почему DLL считает ChildForm за MainForm в самой программе? Поэтому приходится вставлять еще одну дочерку в ChildForm. Иначе при закрытии дочерки закроется и сама программа!
карма: 10
0
файлы: 1code_12315.txt [1.2KB] [556]
Гость
Ответов: 17029
Рейтинг: 0
#7: 2009-03-20 19:06:16 правка | ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2021-06-24 07:13:16
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#8: 2009-03-20 20:19:55 ЛС | профиль | цитата
Assasin писал(а):
Мне только одно непонятно:
Почему DLL считает ChildForm за MainForm в самой программе? Поэтому приходится вставлять еще одну дочерку в ChildForm. Иначе при закрытии дочерки закроется и сама программа!

ну вот, первую проблему мы нашли самостоятельно
карма: 27
0
Разработчик
Ответов: 4698
Рейтинг: 426
#9: 2009-03-20 20:32:54 ЛС | профиль | цитата
Ну это то можно обойти! Как раз так, как я и писал. А какие же ещё там есть проблемы?
карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#10: 2009-03-20 20:45:11 ЛС | профиль | цитата
Assasin, эта проблема так не обходится. Для ее правильного решения необходимо прокидывать объект Applet из основной программы в DLL. Ну и очевидно, что такое возможно сделать только в том случае, если программа и DLL написаны с использованием KOL одной и той же версии. А это в свою очередь значит, что в существующий проект DLL вставлять формы нельзя и если очень хочется это делать, то придется создавать новый проект для HiAsm и новый загрузчик этого проекта для прокидывания Applet
карма: 27
0
Разработчик
Ответов: 4698
Рейтинг: 426
#11: 2009-03-20 21:11:00 ЛС | профиль | цитата
Ну и что же тогда делать? Закрывать тему? Или всё же пытаться искать решение этих проблем
карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#12: 2009-03-20 21:13:47 ЛС | профиль | цитата
Assasin, собственно решение уже было озвучено. Вопрос теперь только в его реализации.
карма: 27
0
Разработчик
Ответов: 4698
Рейтинг: 426
#13: 2009-03-20 21:22:09 ЛС | профиль | цитата
И как будем решать этот вопрос методом голосования
карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#14: 2009-03-21 00:41:42 ЛС | профиль | цитата
голосования за что?
карма: 27
0
Разработчик
Ответов: 4698
Рейтинг: 426
#15: 2009-03-21 12:43:55 ЛС | профиль | цитата
Dilma писал(а):
голосования за что?

Простите, я не так понял, вот и написал не то...
карма: 10
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)