Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

MDI из DLL


Страницы:   1 2

Dennis I. Komarov ©   (2008-10-06 14:04:00) 

Гуру!

Есть ли "костыль" (или хорошая статейка) КАК НАДО это делать...
В нете много всякой охинеи, но вопрос в том КАК ПРАВИЛЬНО...


Dennis I. Komarov   (2008-10-08 09:43:00) [1]


> Сергей М. ©   (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]
> Надо делать как надо, а как не надо - делать не надо (вост.
>  мудр.)

Но перед тем как делать, надо знать как не надо :)


Германн   (2008-10-08 00:46:00) [2]


> Сергей М. ©   (07.10.08 20:32) [34]

До автора ещё, имхо, явно не дошло, что MDI в Windows нет.


Leonid Troyanovsky   (2008-10-07 22:57:00) [3]


> Dennis I. Komarov ©   (06.10.08 14:04)  

> Есть ли "костыль" (или хорошая статейка) КАК НАДО это делать.

Надо делать как надо, а как не надо - делать не надо (вост. мудр.)

--
Regards, LVT.


Сергей М.   (2008-10-07 20:32:00) [4]


> Свойств MDI ес-но нету


Так. ты, похоже, уже опух с формулировкой вопроса)

Опять взялся за МДИ, хотя в [18] черным по-русски написано про MDI и VCL)


Dennis I. Komarov   (2008-10-07 17:02:00) [5]

Так наврал... надо, наверное, так:

function CreateFrame(hWnd: HWND): Boolean; stdcall;
begin
...
end;

и из приложения hWnd:=MainForm.Handle;

а вот как теперь TFrame создавать на MainForm через hWnd?


Dennis I. Komarov   (2008-10-07 16:15:00) [6]

EConvertError...


Palladin   (2008-10-07 15:56:00) [7]

а так ?

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 15:47:00) [8]

[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:45:00) [9]


> Dennis I. Komarov ©   (07.10.08 12:34) [26]

а дальше... а что дальше? создаешь шаблонную форму, кидаешь на нее OleContainer... дальше по вкусу


Dennis I. Komarov   (2008-10-07 13:57:00) [10]


> Василий Жогарев ©   (07.10.08 13:15) [27]

Посмотрел...
При всем уважении, Вы ветку прочитали или так...


Василий Жогарев   (2008-10-07 13:15:00) [11]


> MDI из DLL


Вот это жвачка.... 8)

Посмотри может это поможет...

http://agpu.net/forum/showthread.php?t=486


Dennis I. Komarov   (2008-10-07 12:34:00) [12]


> Palladin ©   (07.10.08 11:49) [25]

Да это не проблема... долго ли умеючи...
В D7 создал
Получил библиотеку (library), к ней юнит с кучей всего. Форма (AX). на нее кидаются батоны как обычно. Свойств MDI ес-но нету. Из библиотеки куча экспортируемых функций.

Дальше как ее готовить и в чем принципиальное различие между TForm и TActiveFormX? Как оно (окно) должно вписываться в мою Main форму? и т.д. и т.п.


Palladin   (2008-10-07 11:49:00) [13]

Просто ручками все делать нужно. Ручками. Я так понимаю в TD просто нет Wizard'ов


Dennis I. Komarov   (2008-10-07 11:46:00) [14]


> Сергей М. ©   (07.10.08 11:26) [22]
> Что-то мешает этому ?

Да собственно, ничего не мешает.
Ищутся пути решения... Крест на них пока никто не ставил
ЗЫ Собствено, где о них хорошо написано?


> Palladin ©   (07.10.08 11:27) [23]

Конечно.
Но почему тогда от меня это скрывает?
New Items > ActiveX > ActiveX Library и все, в то время как у D7 много еще всего кроме...


Palladin   (2008-10-07 11:27:00) [15]

Turbo Delphi, наверное. Все он знает.


Сергей М.   (2008-10-07 11:26:00) [16]


> 1. TDelphi не знает о существовании таковой


TDelphi - это что еще за зверь ?


> 2. Предмет мне нов и подлежит изучению


Что-то мешает этому ?


Dennis I. Komarov   (2008-10-07 11:18:00) [17]


> Сергей М. ©   (07.10.08 10:35) [20]

1. TDelphi не знает о существовании таковой :(
2. Предмет мне нов и подлежит изучению...
3. [15] чем плохо?


Сергей М.   (2008-10-07 10:35:00) [18]


> в длл должна быть не форма


Ну почему же не форма ?
Можно и форму, только она д.б. ActiveX-формой


Dennis I. Komarov   (2008-10-07 10:32:00) [19]


> Сергей М. ©   (07.10.08 09:46) [18]

Да забили уже на формы...
востребованность stdcall вырастает из необходимости возможности писать интерфейсы (то что в длл) на различных платформах. Исходя их того что VCL-форму туда можно засутуть только из Delhpi/BCB делаем вывод, что в длл должна быть не форма, отсюда на формы и забили...


Сергей М.   (2008-10-07 09:46:00) [20]


> Dennis I. Komarov ©   (07.10.08 09:18) [17]


VCL-форма MDIChild-стиля неможет существовать без существования основной VCL-формы MDIParent-стиля.

Основная VCL-форма MDIParent-стиля м.б. создана только Делфи/ВСВ-приложением.

Делфи-среда не требует обязательности использования stdcall-соглашения о межмодульных вызовах.

Так зачем же тебе stdcall ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо