Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-02-2018
ZiriusB ZiriusB is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 84
Poder: 9
ZiriusB Va por buen camino
Ventana Modal pierde el foco

Buenos dias, un gusto saludarles, tengo un formulario al que llamo Principal donde tengo un menu para entrar a los demas formularios.
Uno de esos formularios es PROVEEDORES. al llamar al formulario PROVEEDORES este en su Evento OnActivate tiene algunos parametros (colocar una imagen por defecto, colocar texto en un edit por defecto), lo llamo desde el formulario principal con Showmodal, el problema es que cuando abro el opendialog para cargar la imagen y doy clic en Aceptar (para mostrar imagen en el formulario) el formulario PROVEEDORES no queda seleccionado, es decir, pierde el "focus", cuando doy clic para seleccionarlo me resetea los valores de la imagen y el edit (es decir se activa el OnActivate), lo raro de esto es que yo tengo otro sistema desde donde copie esos parametros y en ese otro sistema funciona perfecto, el formulario no pierde el focus para nada.

Si alguien podria orientarme por favor, agradeceria, quizas es algo sencillo pero no logro dar. (el codigo es algo sencillo, por lo que no creo que sea eso)

Código Delphi [-]
procedure TForm8.BotoncargarClick(Sender: TObject);
begin
if OpenDialog2.Execute then
begin
  mpath:=ExtractFileName(OpenDialog2.FileName);
  OpenDialog2.InitialDir:=CurrentDirectory;
  Image5.Picture.LoadFromFile(OpenDialog2.FileName);
end;
end;

Código Delphi [-]
procedure TForm8.FormActivate(Sender: TObject);
begin
edtid.text:=idempresa( 2,1 );
edtrfc.SetFocus;
Image5.Picture.LoadfromFile(CurrentDirectory+'\image\empresas\sinfoto.jpg');
end;
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."

Última edición por ZiriusB fecha: 18-02-2018 a las 19:20:26.
Responder Con Cita
  #2  
Antiguo 18-02-2018
Jcg-Guirola Jcg-Guirola is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 20
Poder: 0
Jcg-Guirola Va por buen camino
Mira a mi me pasaba parecido abría otros form dentro de un panel en un form principal y no me permitía hacer focus en los edit al no ser con tab y por tanto no podía escribir en ellos, yo lo resolví poniendo esto en el evento click de los edit

Cita:
procedure Tform1.edit1Click(Sender: TObject);
begin
edit1.SetFocus;
end;
es un poco una chapusa porque no me deja por ejemplo seleccionar una parte del texto que escribí en el edit, pero para lo que lo quería me funcionó perfecto.
Responder Con Cita
  #3  
Antiguo 18-02-2018
ZiriusB ZiriusB is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 84
Poder: 9
ZiriusB Va por buen camino
Cita:
Empezado por Jcg-Guirola Ver Mensaje
Mira a mi me pasaba parecido abría otros form dentro de un panel en un form principal y no me permitía hacer focus en los edit al no ser con tab y por tanto no podía escribir en ellos, yo lo resolví poniendo esto en el evento click de los edit


es un poco una chapusa porque no me deja por ejemplo seleccionar una parte del texto que escribí en el edit, pero para lo que lo quería me funcionó perfecto.
El problema es al abrir el opendialog, es decir al abrirlo la ventana pierde el foco, cuando selecciono la imagen y doy clic en aceptar ya el form PROVEEDORES ha perdido el foco.

Intente eso que dices, en el evento Onclic del boton que abre el opendialog coloque EDIT2.SETFOCUS para probar, pero como dije arriba, el foco lo pierde al abrir el opendialog, entonces de igual forma al aceptar la imagen (se cierra el opendialog) activa el evento OnActivate del form PROVEEDORES y seguidamente va al EDIT2.SETFOCUS. no se si me explico.
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."
Responder Con Cita
  #4  
Antiguo 19-02-2018
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 15.755
Poder: 10
Neftali [Germán.Estévez] Tiene un aura espectacularNeftali [Germán.Estévez] Tiene un aura espectacular
Hola.
De primeras (aunque no es lo que preguntas) te diría que no utilices el evento OnActivate para realizar estas cosas, ya que es un evento que se lanza más veces de las que necesitas (para lo que estás haciendo) y además tal vez antes de lo que necesitas también.
Por otro lado, para preguntas como la que planteas es posible que lo más sencillo sea hacer un pèqueño proyecto con un par de formularios y publicarlo como adjunto, para que se pueda reproducir el comportamiento que comentas y sea más fácil buscar una solució alternativa.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 19-02-2018
nopi nopi is offline
Registrado
NULL
 
Registrado: jun 2017
Posts: 5
Poder: 0
nopi Va por buen camino
No te serviría más cambiarlo al evento OnCreate para que solo se ejecute una sola vez?
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
detectar cuando un form pierde o gana el foco cd.rafael OOP 2 31-01-2013 21:05:29
Ventana modal que muestra un diálogo al abrirse (no se ve la ventana) Lord Delfos Varios 2 12-02-2010 05:50:30
Devolver foco desde Form No Modal al control llamante gluglu Varios 8 22-06-2007 09:35:41
Poner color background del form cuando pierde el foco Cabanyaler Gráficos 4 25-11-2004 09:32:03
Formulario que pierde el foco en tranparente Cabanyaler Gráficos 3 23-11-2004 18:17:48


La franja horaria es GMT +2. Ahora son las 22:07:24.


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