Текущий архив: 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