creacion del formulario:
llamada desde la aplicacion:
Código Delphi
[-]
procedure TModuloImagenes.ActivarPaciente1Click(Sender: TObject);
begin
formref:=abriractivar(Handle,100,100,wm_user);
end;
creacion en la dll(este codigo esta en el dpr)
Código Delphi
[-]
function AbrirActivar(AHandle:THandle;Px,Py,Msgback:integer):longint; var activar:Tactivar;
begin
application.Handle:=AHandle;
activar:= Tactivar.Create(nil);
formref:=longint(activar);
activar.fhandle:=ahandle;
activar.msgdevuelto:=msgback;
activar.Top:=Px;
activar.Left:=Py;
activar.Show;
result :=formref;
end;
cierre del formulario(se ejecuta cnd el formulario envia un mensaje a la aplicacion
llamada en la aplicacion:
Código Delphi
[-]
procedure TModuloImagenes.cogeMSG(var msg : Tmessage);
begin
codpac:=msg.WParam;
dm.datosper.Locate('Codigo',codpac,[]);
DM.fotos.Filter:=('Codigo ='+ QuotedStr(dbedit1.text));
DM.fotos.Filtered:=true;
cerraractivar(formref);
end;
codigo en la dll
Código Delphi
[-]
procedure CerrarActivar(AFormRef:longint);
begin
if AFormRef > 0 then
Tactivar(AFormRef).free;
end;
no funciona ni con close no free, ni refiriendome al formulario con la variable aformref ni poniendo directamente el nombre del mismo.