Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Formularios desde una Dll (https://www.clubdelphi.com/foros/showthread.php?t=33623)

mcarazas 12-07-2006 16:42:28

Formularios desde una Dll
 
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 12-07-2006 23: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.

Código Delphi [-]
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 17:57:39

Procedimiento
 
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.

Código Delphi [-]

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 21: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 21: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 22:17:22

Agradecimiento
 
Gracias por tú ayuda me solucionaste el problema


La franja horaria es GMT +2. Ahora son las 14:39:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi