PDA

Ver la Versión Completa : Formularios desde una Dll


mcarazas
12-07-2006, 17:42:28
Hola Amigos del foro:

Tengo un problema, cuando llamo un formulario desde una Dll se crea como una nueva ventana, como puedo hacer que que ese formulario se carge en la misma ventana del MDI, agradesco de antemano su ayuda.

Atentamente, Marcelo Carazas

genius
13-07-2006, 00:55:09
este parametro Aplication.Handle tenes q pasarle a tu Dll
y a la hora de crear el Formu lo haces de esta manera.


function ShowForm(A: TApplication): Bool;
var
Form1: TfrmDLL;
begin
Application.Handle := A.Handle;
Form1 := TfrmDLL.Create(A);
try
Result := (Form1.ShowModal = mrOK);
finally
Form1.Free;
end;
end;

mcarazas
13-07-2006, 18:57:39
Gracias por tu respuesta pero tengo este procedimiento en la Dll donde solo lamo a Crear_form en que parte deberia colocarlo, agradecere mucho tú ayuda.



procedure Crear_form(a: Integer; b: Integer; c:Double);
begin
Application.CreateForm(TfrmKardex1, frmKardex1);
frmKardex1.suc := a;
frmKardex1.ttr := b;
frmKardex1.TCambio:=c;
frmKardex1.ShowModal;
while frmKardex1 <> nil do
FreeAndNil(frmKardex1);
end;

genius
13-07-2006, 22:04:37
en este caso deberias alterar tu procedimiento de llamada y agregarle el
Application Ej-

tu llamada deberia quedar asi
"Crear_form(Application ;1;2; couble ?);"

debes Mandarle el TApplication

procedure Crear_form(A: TApplication ;a: Integer; b: Integer; couble);
begin
Application.CreateForm(TfrmKardex1, frmKardex1);
frmKardex1.suc := a;
frmKardex1.ttr := b;
frmKardex1.TCambio:=c;
frmKardex1.ShowModal;
while frmKardex1 <> nil do
FreeAndNil(frmKardex1);
end;

genius
13-07-2006, 22:09:56
mas completo ...
en este caso deberias alterar tu procedimiento de llamada y agregarle el
Application Ej-

tu llamada deberia quedar asi
"Crear_form(Application ;1;2; couble ?);"

debes Mandarle el TApplication

procedure Crear_form(A: TApplication ;a: Integer; b: Integer; couble);
begin
Application.Handle := A.Handle;
frmKardex1 := TfrmKardex1.Create(A);
frmKardex1.suc := a;
frmKardex1.ttr := b;
frmKardex1.TCambio:=c;
frmKardex1.ShowModal;
while frmKardex1 <> nil do
FreeAndNil(frmKardex1);
end;

mcarazas
13-07-2006, 23:17:22
Gracias por tú ayuda me solucionaste el problema