Вопрос к уважаемым программистам. Подскажите, плиз.
Пришлось мне в Дельфи-5 DLL-библиотеку написать, а в ней нужно хранить несколько форм. И одна из этих форм должна вызываться из основной программы по кнопке. Вроде бы всё правильно делаю: всё связал-экспортировал, на кнопку навесил процедуру
procedure ShowFormMyParam(AOwner: TComponent);
для динамического создание экземпляра библиотечной формы. В процедуре типа конструктор:
FormMyParam:=TFormMyParam.Create(AOwner) ; с последующим Шоумодалом и Фри.
Непосредственно вызываю эту процедуру (она-то и берется из DLL) как
ShowFormMyParam(Self); после чего управление - в DLL. Там еще несколько обработчиков всяких щелчков на DLL-форме, и вот они-то, казззлы, не работают.
То есть DLL-форма - отображается, но стоит в какой-нибудь обработчик ткнуть и
"Access violation at address бла-бла in module 'Lib.dll'. Read of address FFFFFFFF"
Похоже, для системы нет всей формы, и обращение в недопустимую память. Уж и так корячился и эдак... Не выходит каменный цветок...:)
Пришлось мне в Дельфи-5 DLL-библиотеку написать, а в ней нужно хранить несколько форм. И одна из этих форм должна вызываться из основной программы по кнопке. Вроде бы всё правильно делаю: всё связал-экспортировал, на кнопку навесил процедуру
procedure ShowFormMyParam(AOwner: TComponent);
для динамического создание экземпляра библиотечной формы. В процедуре типа конструктор:
FormMyParam:=TFormMyParam.Create(AOwner)
Непосредственно вызываю эту процедуру (она-то и берется из DLL) как
ShowFormMyParam(Self); после чего управление - в DLL. Там еще несколько обработчиков всяких щелчков на DLL-форме, и вот они-то, казззлы, не работают.
То есть DLL-форма - отображается, но стоит в какой-нибудь обработчик ткнуть и
"Access violation at address бла-бла in module 'Lib.dll'. Read of address FFFFFFFF"
Похоже, для системы нет всей формы, и обращение в недопустимую память. Уж и так корячился и эдак... Не выходит каменный цветок...:)
