Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.04.27;
Скачать: CL | DM;

Вниз

Програмное закрытие формы из Dll   Найти похожие ветки 

 
206196131 ©   (2008-03-29 22:57) [40]

Palladin то что bpl и ком ничего общего не имеют это факт
но визуально, то я хоч у в итоге получить можно сделать на 4 способами  (com,bpl, dll, И все в одном) )) насколько я знаю...

На тему bpl убедили окончательно но всёже поскажите как
раз и навсегда как закрыть это злополучное окно )) в случае в  dll


 
Loginov Dmitry ©   (2008-03-29 23:00) [41]

> как
> раз и навсегда как закрыть это злополучное окно ))


очень просто - не открывай, и не придется его ни разу закрывать!


 
206196131 ©   (2008-03-29 23:03) [42]

так оно уже отрыто )) нужно закрыть


 
Loginov Dmitry ©   (2008-03-29 23:10) [43]

Ты реального кода ни граммы не привел! Не известно, что все-таки у тебя там не получается. Так что других советов пока дать невозможно!


 
206196131 ©   (2008-03-29 23:16) [44]

вот так вызываю форму из dll

FLiba := LoadLibrary(PChar(dll_file_name));
      @Init := GetProcAddress(FLiba, PChar("InitPlugin"));
      @Done := GetProcAddress(FLiba, PChar("DonePlugin"));
      @CreateMDI  := GetProcAddress(FLiba, PChar("CreateMDI"));
   
Init(integer(Application), integer(Screen));
Fplugin:= TForm(CreateMDI);
Fplugin.Show;


 
Loginov Dmitry ©   (2008-03-29 23:21) [45]

Приведи текст функции InitPlugin


 
206196131 ©   (2008-03-29 23:21) [46]

на форме 1 кнопка  
 по который пытаюсь закрыть окно, (2 окно как бы не при делах), тк ни одно из  dll  програмно не могу закрыть


 
206196131 ©   (2008-03-29 23:23) [47]

procedure InitPlugin(App, Scr: integer); StdCall;
var DA: TApplication; DS: TScreen;
begin
 DS := Screen;
 Screen := TScreen(Scr);
 DA := Application;
 Application := TApplication(App);
end;


 
Loginov Dmitry ©   (2008-03-29 23:31) [48]

ну хоть объект Application у тебя везде одинаковый. Это радует! :D


 
Loginov Dmitry ©   (2008-03-29 23:35) [49]

Еще раз напомню: переименуй форму Form1 в dll-ке.
Ибо если в exe-шнике уже есть Form1, а в dll-ке создается форма с тем же именем с помощью Application.CreateForm(Tform1,form1), и Application у них один, то это может привести к неприятным последствиям.


 
206196131 ©   (2008-03-29 23:38) [50]

перименовал, никаких пересечений имен небыло,  но результат тотже


 
206196131 ©   (2008-03-29 23:39) [51]

чем отличаются события  frm.Close; от нажатие крестика


 
206196131 ©   (2008-03-30 00:21) [52]

по итогу все оказалось в следующем в методе создания этого окна

вариант 1
   Tfrm.Create(Application)

окошко рисуется но

Tfrm.close  не работает

вариант 2
     Application.CreateForm(Tfrm,frm);
так все работает


 
Johnmen ©   (2008-03-30 00:52) [53]

Чудны дела твои, Господи (с)


 
Германн ©   (2008-03-30 01:11) [54]


> Johnmen ©   (30.03.08 00:52) [53]
>
> Чудны дела твои, Господи (с)
>

Не. Все эти формы в ДЛЛ - от лукавого.


 
Johnmen ©   (2008-03-30 01:15) [55]


> Германн ©   (30.03.08 01:11) [54]

Понял. Господь не причем. Лукавый рулит... :)


 
206196131 ©   (2008-03-30 01:21) [56]

аха


 
206196131 ©   (2008-03-30 06:45) [57]

вариант 1
  Tfrm.Create(Application)
окошко рисуется но
Tfrm.close  не работает

вариант 2
    Application.CreateForm(Tfrm,frm);
так все работает

и никакого отношения к  dll неимет, любоё оно сзданное  1 способом не закрывается ))

 а что касается DLL  начал переписывать все на  bpl пока доволен ))


 
Loginov Dmitry ©   (2008-03-30 21:00) [58]

> и никакого отношения к  dll неимет, любоё оно сзданное  
> 1 способом не закрывается ))


Странно... как это TForm1(nil).Close не работает. Да?
А у тебя именно это и получается.


 
Сергей М. ©   (2008-03-31 08:27) [59]


> 206196131 ©   (29.03.08 23:23) [47]
>
> procedure InitPlugin(App, Scr: integer); StdCall;


Это что за танцы с бубном ?



Страницы: 1 2 вся ветка

Текущий архив: 2008.04.27;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.023 c
11-1188127195
Пётр
2007-08-26 15:19
2008.04.27
Создание TControl в произвольном окне с известным дескриптором


15-1205120451
Denis__
2008-03-10 06:40
2008.04.27
Школа будущего.


2-1207142296
Res
2008-04-02 17:18
2008.04.27
цвет пикселя


11-1173843627
ryslan56
2007-03-14 06:40
2008.04.27
Не работают библиотеки


2-1207048940
Mishenka
2008-04-01 15:22
2008.04.27
Перемотка текста в RichEdit