Ver Mensaje Individual
  #8  
Antiguo 28-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 31
Lepe Va por buen camino
Ya veo cual es el problema, es un caso especial y como diría un mecánico... "tiene mala soldadura" .

El problema es que usas ShowModal (supongo que por requerimientos) así que antes de mostrar la ventana, no puedes establecer el foco.

Tampoco puedes dejar el foco (en diseño, mediante la propiedad ActiveControl del Form) porque primero se pone en modo inserción, después se muestra la ventana y ahora es cuando se cambiaría el foco hacia el DBEdit1, puesto que ya está en modo inserción la tabla, el bug comentado de delphi quita el modo inserción.

Poner el foco después de hacer un ShowModal, tampoco sirve de nada, precisamente porque la ejecución se para justo en la línea del ShowModal.

Lo que vamos a hacer es marear un poco a delphi con los eventos, y de paso, también te mareo a tí :
Código Delphi [-]

procedure TFPrincipal.BitBtn1Click(Sender: TObject);
begin
  FMD.QAlumnos.Open;
  FMD.QPermisoAlum.Open;
  FAlumnos.OnShow := MiShow; // cuando se muestre, le decimos que 
// vuelva a este form.
  FAlumnos.ShowModal;
end;

procedure TFPrincipal.MiShow(Sender:TObject);
begin
  FAlumnos.DBEdit1.SetFocus
  FAlumnos.btnInsertar.click;
end;

Así muestra la ventana Falumnos, e inmediatamente viene a este evento MiShow, donde ya si podemos establecer el foco donde queramos y además, ponemos la tabla en insertar.


PD: Por favor, encierra el código entre

[ delphi ]
aqui vuestro codigo
[ /delphi ]

(sin espacios dentro de los corchetes) Así consigues que respete el identado y aparezca las palabras reservadas en negrita y colores.

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