Ver Mensaje Individual
  #4  
Antiguo 22-11-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 31
Lepe Va por buen camino
Lo primero de todo es decir el error concreto que da, si es un access violation, un abstract error o lo que sea, mientras tanto es muy difícil ayudarte.

En cuanto a lo del hint, hay 2 cosas:
- Application.Onhit := Mihint, no me queda claro si lo haces en cada ventana que creas, o solo en una. Deberías hacer eso en una sola ventana, así todos los hints de todas las ventanas se iran al LMDSTATUSBAR.

- ¿Por qué haces uso de un try finally vacío?
Código Delphi [-]
try
if Application.Hint <> '' then
LMDStatusBar1.SimpleText := Application.Hint;
finally


  // aqui deberias poner algo, o si no, quitar el try finally.


end


Comentarios de la función MostrarModal:
Código Delphi [-]
procedure MostrarModal(vForma: TForm);
begin
if vForma = nil then Exit;
vForma := TForm.Create(nil);
vForma.ShowModal;
vForma.Release;
end;

si vForma es igual a nil, entonces no se crea ¿Por qué?
Desde mi punto de vista debería ser al revés. Si vForma es igual a nil, significa que no está creada, por tanto se debe crear y mostrar.

Si vForma es distinto de nil, significa que está creada o sabe dios si se ha destruido ya.... para solventar esto, sigue leyendo.

Tampoco veo necesario usar Release (ya que no estas cerrando la ventana desde un método de esa misma ventana), lo cierras desde una ventana distinta y para ello sería mejor usar Freeandnil(VForma); así la segunda o tercera vez que se llame a Mostrar modal no dará fallos.

Yo haría la rutina de esta forma:
Código Delphi [-]
procedure MostrarModal(vForma: TForm);
begin
if not assigned(vForma) then
  vForma := TForm.Create(nil);
vForma.ShowModal;
freeandnil(vForma);
end;

Aunque no le veo mucho sentido, ya que deja muy poca interacción con dicha ventana, es decir, después de mostrarse, se cierra.... no da tiempo a recoger valores de retorno de dicha ventana... que suelen ser muy útiles.

En fin, tú sabrás qué y cómo lo estas haciendo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita