Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Code 1400. El identificador de la ventana no es válido. (https://www.clubdelphi.com/foros/showthread.php?t=28102)

arantzal 09-12-2005 11:29:30

Code 1400. El identificador de la ventana no es válido.
 
Buenas,
tengo un problema a la hora de acceder por segunda vez a un procedimiento de una dll. La primera vez me deja sin problemas pero las siguientes me da el siguiente error:

System error. Code 1400.
El identificador de la ventana no es válido.


Al procedimiento accedo así:

Código:

THilo.execute;
var
begin
 
        HandlePacksGes := LoadLibrary('Gestion.dll');
        if HandlePacksGes <> 0 then
        begin
                        CanAnimate:= GetProcAddress(HandlePacksGes, 'Gestionar')<> nil;
                        if CanAnimate then
                        begin
                        try
                        Gestionar(IdUsuario, Con1); -- aquí el error al acceder por 2ª vez
                        except
                        on e: exception do
                        begin
                        messagedlg( e.message , mtwarning, [mbok],0);
                        end;
                        end;
                        end;


El código del procedimiento de la dll es el siguiente:

Código:

procedure Gestionar(IdUsuario: integer;Conn: variant); export;
begin
frm := TfrmGest.Create(nil);
frm.IdUsuario := IdUsuario;
frm.Visible := true; f
rm.Handle;
 
while (frm.HandleAllocated) do
Application.ProcessMessages;
end;
 


Si alguien tiene alguna idea?
Saludos y gracias.

luisgutierrezb 09-12-2005 19:01:05

y donde liberas la ventana? en el onclose de la forma?
porque en lugar de obligar a la ventana a asignarle un Handle y ver si esta asignado, porque no muestras la ventana en forma modal?

arantzal 12-12-2005 08:52:12

Buenas,

el formulario lo libero en el close de la siguiente forma:
Código:

 
Action := caFree;

He probado a mostrar el formulario en forma modal y me pasa lo mismo. Al acceder por segunda vez a la dll me da el mismo error.

¿Alguna idea?¿Estoy liberando algo mal? (porque como el error da de la segunda vez en adelante).

Saludos y gracias.

arantzal 13-12-2005 15:12:09

Buenas,

todavía no he conseguido solucionar este error. He probado llamando a otros procedimientos de otras dlls y me pasa lo mismo. La segunda vez que intento ejecutar algún procedimiento de alguna dll me da el mismo error, pero si quito el hilo me va bien.

Alguna idea de porqué puede ser? Donde puedo leer información sobre los hilos?

Saludos y gracias.


La franja horaria es GMT +2. Ahora son las 21:32:47.

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