|
#1
|
|||
|
|||
несколько форм
Подскажите пожалуйста новичку!!!
Есть форма с кнопкой, по нажатию вызывается другая форма (как библиотека), но нужно в библиотеке добавить еще форму (она добавляется, но при попытке к ней обратится при выполнение программы выскакивает ошибка). Можно ли как-то ее победить)??? |
#2
|
|||
|
|||
Код в студию.
Что значит "библиотека"? Как вызывается первая форма из нее? Как сделана вторая форма - так же, как первая или есть различия? |
#3
|
|||
|
|||
первая форма
Код:
procedure TFMain.Button1Click(Sender: TObject); var hDll : THandle; begin hDll := LoadLibrary(PChar(extractFileDir(ParamSTR(0)) + '\' + 'passport.drs')); @OpenPassport1 := GetProcAddress(hDll,'OpenPassport'); OpenPassport1(Handle); FreeLibrary(hDll); end; Код:
library passport; { Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select Project-View Source) USES clause if your DLL exports any procedures or functions that pass strings as parameters or function results. This applies to all strings passed to and from your DLL--even those that are nested in records and classes. ShareMem is the interface unit to the BORLNDMM.DLL shared memory manager, which must be deployed along with your DLL. To avoid using BORLNDMM.DLL, pass string information using PChar or ShortString parameters. } uses SysUtils, Classes, Unit1 in 'Unit1.pas' {FPass}; {$E drs.res} {$R *.res} exports OpenPassport; begin end. *************** код из самой формы procedure OpenPassport(aHandle: THandle); Export; StdCall; implementation {$R *.dfm} procedure OpenPassport(aHandle: THandle); var OldHandle : THandle; begin CoInitialize(Nil); OldHandle := Application.Handle; Application.Handle := aHandle; FPass:= TFPass.Create(Application); try FPass.ShowModal; finally Application.Handle := OldHandle; FPass.Free; end; end; Последний раз редактировалось crazyman, 09.05.2017 в 18:28. |
#4
|
|||
|
|||
ну дык, ёкарный бабай!!!
У тебя же тут спец. процедура для открытия формы. Соответственно, для второй формы надо написать такую же. Или эту поменять так, что бы она могла по параметру открывать любую из форм. |
#5
|
|||
|
|||
Цитата:
|
#6
|
||||
|
||||
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
crazyman (12.05.2017)
|
#7
|
|||
|
|||
СПАСИБО!!!
|
#8
|
||||
|
||||
А за что, спасибки-то? Наверное всёж будут непонятки, пжлст, лучше прикрепите в теме образцы ваших форм и что с ними должно происходить и набор "спец. процедур" вам будет обеспечен
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#9
|
|||
|
|||
Цитата:
есть "главная" форма из нее вызывается модальная форма, нужно из модальной формы вызвать еще одну форму ну типа форма модальная модальной. В пример из прошлой ветки как раз таки хотелось добавить еще одну форму вызываемую вызванной формой) Последний раз редактировалось crazyman, 12.05.2017 в 22:45. |
#10
|
||||
|
||||
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
crazyman (12.05.2017)
|
#11
|
|||
|
|||
Цитата:
Последний раз редактировалось crazyman, 12.05.2017 в 23:28. |