Ver Mensaje Individual
  #3  
Antiguo 17-06-2013
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Reputación: 27
egostar Va camino a la fama
Cita:
Empezado por Fita Ver Mensaje
Hola a todos.

Mi aplicacion utiliza esta funcion para saber si una ventana esta activa o no y abrirla sólo una vez:


Código Delphi [-]
function Formexiste(form: TForm): boolean; stdcall; export;
begin
     if assigned( form ) then
     begin
          form.WindowState := wsNormal;
          form.Show;
          result := true;
     end
     else
     begin
          result := false;
     end;
end;

Esta función está incluida en un .pas del proyecto y funciona a la perfección.
Ahora al pasarla a una .dll (estoy incursionando en el uso de éstas) siempre abre una nueva ventana aunque ésta este abierta...
Qué es lo que está mal?

Gracias por adelantado
Saludos
Yo haría lo siguiente:

Código Delphi [-]
function formExiste(Asignada: Boolean): Boolean; stdcall; export;
begin
  if Asignada then
  begin
    form.WindowState := wsNormal;
    form.Show;
    result := true;
  end
  else begin
         result := false;
  end;
end;

Y la llamada a la función sería algo como ésto:

Código Delphi [-]
if formExiste( Assigned( form1 ) ) then
begin
  //Lo que sea
end;

Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita