Форум: "Начинающим";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];
ВнизMDI из DLL Найти похожие ветки
← →
Dennis I. Komarov © (2008-10-06 14:04) [0]Гуру!
Есть ли "костыль" (или хорошая статейка) КАК НАДО это делать...
В нете много всякой охинеи, но вопрос в том КАК ПРАВИЛЬНО...
← →
Palladin © (2008-10-06 14:35) [1]правильно - bpl
← →
Dennis I. Komarov © (2008-10-06 14:37) [2]нет, bpl - это из другой жизни... нуно dll, причем stdcall
← →
Palladin © (2008-10-06 14:40) [3]а, собственно, как ты себе это представляешь? что именно должно быть в dll? форма? окно? что?
← →
Сергей М. © (2008-10-06 14:42) [4]
> причем stdcall
Почему именно stdcall ?
← →
Palladin © (2008-10-06 14:42) [5]
> нуно dll, причем stdcall
а вообще, ActiveX так и напрашивается...
← →
Vlad Oshin © (2008-10-06 15:16) [6]
> нет, bpl - это из другой жизни... нуно dll, причем stdcall
ну и пиши dll, но с bpl
http://hghltd.yandex.net/yandbtm?url=http%3A%2F%2Fwww.softwarer.ru%2Fpackages.html&text=%D4%E0%EA%F2%E8%F7%E5%F1%EA%E8%20%E2%20%FD%F2%EE%E9%20%F1%F2%E0%F2%FC%E5%20%FF%20%F3%F2%E2%E5%F0%E6%E4%E0%FE%20%F1%EB%E5%E4%F3%FE%F9%E5%E5%3A%20%E4%EB%FF%20Delphi%20%F1%F3%F9%E5%F1%F2%E2%F3%E5%F2%20%F2%E5%F5%ED%EE%EB%EE%E3%E8%FF
← →
Amoeba © (2008-10-06 16:14) [7]Статья: О загрузке дочерней формы (MDIChild) из DLL.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=276
← →
clickmaker © (2008-10-06 16:16) [8]TFrame
← →
Dennis I. Komarov © (2008-10-06 16:45) [9]
> Сергей М. © (06.10.08 14:42) [4]
> Palladin © (06.10.08 14:40) [3]
Даже сейчас не готов ответить...
Задача приблизительно: слелать "универсальную" оболочку, к которой после будут создаваться баблиотеки (не обязательно на Delphi), и в результате динамически подгружать интерфейс. Сперва стал искать в районе MDI...
> Amoeba © (06.10.08 16:14) [7]
Читал ... многое не понравилось...
> clickmaker © (06.10.08 16:16) [8]
*SCRATCH*
← →
clickmaker © (2008-10-06 16:47) [10]> > clickmaker © (06.10.08 16:16) [8]
>
> *SCRATCH*
*BEER*
← →
Dennis I. Komarov © (2008-10-06 17:01) [11]TFrame можно создать, скажем, из MSVC?
← →
clickmaker © (2008-10-06 17:02) [12]> TFrame можно создать, скажем, из MSVC?
CreateWindow
возвращаешь hwnd, а что это: фрейм или черт в ступе - не важно
← →
Сергей М. © (2008-10-06 17:05) [13]
> TFrame можно создать, скажем, из MSVC?
Для общения между модулями, построенными в разных средах разработки, мелкомягкими специально придумана технология OLE/COM.
← →
Dennis I. Komarov © (2008-10-06 17:57) [14]
> Сергей М. © (06.10.08 17:05) [13]
Вот этого для полного счастья тут точно не хватает ;)
← →
clickmaker © (2008-10-06 18:02) [15]> [14] Dennis I. Komarov © (06.10.08 17:57)
смотри: вся логика MDI находится в экзе. А DLL, так сказать, экспортирует окна, которые ты потом просто кладешь на MDI-чаилды. Поэтому, в принципе неважно на чем DLL написана. Это могут быть и панели и фреймы и мфсишные CWnd
← →
Игорь Шевченко © (2008-10-06 19:07) [16]странная идея. ведь эти сторонние библиотеки невесть на чем написанные, должны же в своих окнах что-то отображать ? а откуда они это узнают, если основа на delphi написана ?
← →
Dennis I. Komarov © (2008-10-07 09:18) [17]
> clickmaker © (06.10.08 18:02) [15]
*THUMBS UP*
> Игорь Шевченко © (06.10.08 19:07) [16]
Каждое окно пишется под определеные действия (цели) и само "знает" что от него требуется если его вызвали
← →
Сергей М. © (2008-10-07 09:46) [18]
> Dennis I. Komarov © (07.10.08 09:18) [17]
VCL-форма MDIChild-стиля не может существовать без существования основной VCL-формы MDIParent-стиля.
Основная VCL-форма MDIParent-стиля м.б. создана только Делфи/ВСВ-приложением.
Делфи-среда не требует обязательности использования stdcall-соглашения о межмодульных вызовах.
Так зачем же тебе stdcall ?
← →
Dennis I. Komarov © (2008-10-07 10:32) [19]
> Сергей М. © (07.10.08 09:46) [18]
Да забили уже на формы...
востребованность stdcall вырастает из необходимости возможности писать интерфейсы (то что в длл) на различных платформах. Исходя их того что VCL-форму туда можно засутуть только из Delhpi/BCB делаем вывод, что в длл должна быть не форма, отсюда на формы и забили...
← →
Сергей М. © (2008-10-07 10:35) [20]
> в длл должна быть не форма
Ну почему же не форма ?
Можно и форму, только она д.б. ActiveX-формой
← →
Dennis I. Komarov © (2008-10-07 11:18) [21]
> Сергей М. © (07.10.08 10:35) [20]
1. TDelphi не знает о существовании таковой :(
2. Предмет мне нов и подлежит изучению...
3. [15] чем плохо?
← →
Сергей М. © (2008-10-07 11:26) [22]
> 1. TDelphi не знает о существовании таковой
TDelphi - это что еще за зверь ?
> 2. Предмет мне нов и подлежит изучению
Что-то мешает этому ?
← →
Palladin © (2008-10-07 11:27) [23]Turbo Delphi, наверное. Все он знает.
← →
Dennis I. Komarov © (2008-10-07 11:46) [24]
> Сергей М. © (07.10.08 11:26) [22]
> Что-то мешает этому ?
Да собственно, ничего не мешает.
Ищутся пути решения... Крест на них пока никто не ставил
ЗЫ Собствено, где о них хорошо написано?
> Palladin © (07.10.08 11:27) [23]
Конечно.
Но почему тогда от меня это скрывает?
New Items > ActiveX > ActiveX Library и все, в то время как у D7 много еще всего кроме...
← →
Palladin © (2008-10-07 11:49) [25]Просто ручками все делать нужно. Ручками. Я так понимаю в TD просто нет Wizard"ов
← →
Dennis I. Komarov © (2008-10-07 12:34) [26]
> Palladin © (07.10.08 11:49) [25]
Да это не проблема... долго ли умеючи...
В D7 создал
Получил библиотеку (library), к ней юнит с кучей всего. Форма (AX). на нее кидаются батоны как обычно. Свойств MDI ес-но нету. Из библиотеки куча экспортируемых функций.
Дальше как ее готовить и в чем принципиальное различие между TForm и TActiveFormX? Как оно (окно) должно вписываться в мою Main форму? и т.д. и т.п.
← →
Василий Жогарев © (2008-10-07 13:15) [27]
> MDI из DLL
Вот это жвачка.... 8)
Посмотри может это поможет...
http://agpu.net/forum/showthread.php?t=486
← →
Dennis I. Komarov © (2008-10-07 13:57) [28]
> Василий Жогарев © (07.10.08 13:15) [27]
Посмотрел...
При всем уважении, Вы ветку прочитали или так...
← →
Palladin © (2008-10-07 15:45) [29]
> Dennis I. Komarov © (07.10.08 12:34) [26]
а дальше... а что дальше? создаешь шаблонную форму, кидаешь на нее OleContainer... дальше по вкусу
← →
Dennis I. Komarov © (2008-10-07 15:47) [30][dll]
function CreateFrame(App: TApplication): Boolean; stdcall;
begin
with TAnyFrame.Create(App) do begin
Parent:=App.MainForm;
HFrame:=Handle;
end;
Result:=true;
end;
у TAnyFrame св-во ParentFont:=false;
Объект создается, но его не видно на MainForm. Где чего не КУ?
TScreen?
← →
Palladin © (2008-10-07 15:56) [31]а так ?
Function GetExceptString:String;
Begin
SetLength(Result,500);
SetLength(Result,ExceptionErrorMessage(ExceptObject,ExceptAddr,PChar(Result),500 ));
Result:=Trim("(!!!) "+Result);
end;
function CreateFrame(App: TApplication): Boolean; stdcall;
begin
Try
with TAnyFrame.Create(App) do begin
Parent:=App.MainForm;
HFrame:=Handle;
end;
Result:=True;
Except
MessageBox(0,PChar(GetExceptString),"Exception",mb_ok);
Result:=False;
End;
end;
← →
Dennis I. Komarov © (2008-10-07 16:15) [32]EConvertError...
← →
Dennis I. Komarov © (2008-10-07 17:02) [33]Так наврал... надо, наверное, так:
function CreateFrame(hWnd: HWND): Boolean; stdcall;
begin
...
end;
и из приложения hWnd:=MainForm.Handle;
а вот как теперь TFrame создавать на MainForm через hWnd?
← →
Сергей М. © (2008-10-07 20:32) [34]
> Свойств MDI ес-но нету
Так. ты, похоже, уже опух с формулировкой вопроса)
Опять взялся за МДИ, хотя в [18] черным по-русски написано про MDI и VCL)
← →
Leonid Troyanovsky © (2008-10-07 22:57) [35]
> Dennis I. Komarov © (06.10.08 14:04)
> Есть ли "костыль" (или хорошая статейка) КАК НАДО это делать.
Надо делать как надо, а как не надо - делать не надо (вост. мудр.)
--
Regards, LVT.
← →
Германн © (2008-10-08 00:46) [36]
> Сергей М. © (07.10.08 20:32) [34]
До автора ещё, имхо, явно не дошло, что MDI в Windows нет.
← →
Dennis I. Komarov © (2008-10-08 09:43) [37]
> Сергей М. © (07.10.08 20:32) [34]
> Германн © (08.10.08 00:46) [36]
Нет, мне всетаки интересно, почему Вы читаете столь старые посты но никак не новые?
От MDI я пока вроде и не отказывался, с той разницой, что в библиотеке держать не форму, а окно (TFrame), которое импортировать из библиотеки на Main или MDIChild форму которые создаются в EXE как предложено в [15]
И где написано, что я ожидал увидить в AX MDI св-ва? Я лишь описал чего получилось, т.к. ни разу не работал с AX...
> Leonid Troyanovsky © (07.10.08 22:57) [35]
> Надо делать как надо, а как не надо - делать не надо (вост.
> мудр.)
Но перед тем как делать, надо знать как не надо :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.005 c