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

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

Формы в DLL [D6, Win2k]


dtk ©   (2003-02-05 09:35:00) 

У меня такая ситуация, я вызываю форму из DLL-ки, но мне нужно из этой формы вызвать еще одну форму и передать в нее данные, так вот, когда я делаю вторую форму в этой же DLL-ке, то при ее вызове возникает ошибка, как мне это обойти?
Заранее спасибо.


dtk   (2003-02-05 10:30:00) [1]

всем спасибо, а особенно stoneза совет(вернее за замечание "Формы в DLL автоматически не создаются. Нужно сначала создать, а потом уже вызывать"), я уже разобрался как это побороть.


Palladin   (2003-02-05 10:27:00) [2]

2 dtk
да действительно
>procedure cardone(aOwner:TComponent);
тоже ляпус
достаточно
procedure cardone;
var myform:TCardOne;
begin
myform:=TCardOne.Create(nil);
MyForm.ShowModal;
MyForm.Free;
end;


Palladin   (2003-02-05 10:25:00) [3]

а ну да...
все верно...
чего то несуразное у тебя

myform создаешь правильно... а вот CardOne сплошной ляпус...


gek   (2003-02-05 10:24:00) [4]

Честно говоря неясно что это за вызов ->
procedure cardone(aOwner:TComponent);


Palladin   (2003-02-05 10:21:00) [5]

или подожди...
я не догнал с начала что у тебя происходит...
у тебя U_cardone используется в библиотеке?


Palladin   (2003-02-05 10:18:00) [6]

не правильно твоя форма создается
CardOne:=TCardOne.Create(self)


dtk   (2003-02-05 10:11:00) [7]

Есть такая форма
unit U_cardone;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
type
TCardOne = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
CardOne: TCardOne;
implementation
{$R *.dfm}
end.

Вот эту форму нудно вызвать из другой. Я делал так:
library lib;
procedure cardone(aOwner:TComponent);
var myform:TCardOne;
begin
myform:=TCardOne.Create(aOwner);
MyForm.ShowModal;
MyForm.Free;
end;
.......


А затем вызывал из другой формы
...
CardOne.Create(self);
....
Может надо как-то по-другому делать? Не знаю.
Буду благодарен за совет.


Palladin   (2003-02-05 09:43:00) [8]

код хотя бы чтоли глянуть... или это коммерческая тайна? :)


stone   (2003-02-05 09:41:00) [9]

Формы в DLL автоматически не создаются. Нужно сначала создать, а потом уже вызывать.


Наверх

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