PDA

Ver la Versión Completa : Cambiar foco de formulario


jollodel
02-08-2004, 09:46:42
Hola

Tengo una aplicación MDI con dos MDIChild abiertos, y claro, el ultimo q he creado tiene el foco. Como puedo hacer para cambiar el foco al otro formulario MDIChild (el primero que cree)??

Graciasss :D

jachguate
02-08-2004, 09:56:59
Podes llamar al método SetFocus de alguno de sus controles:

Form1.edit1.SetFocus;

también es probable que funcione un:

Form1.SetFocus;

aunque nunca lo he probado.

Hasta luego.

;)

jollodel
02-08-2004, 10:07:17
Nada, eso no me funciona. Me aparece en pantalla el tipiko mensaje de error de acceso a memoria. Alguna otra idea? Parece una tonteria pero ya llevo unos cuantos dias dandole vueltas al tema!

Gracias de todos modos. (se admiten mas sugerencias) ;)

ruina
02-08-2004, 10:39:37
en el formulario padre (en el sentido mdi de la palabra) de ambos formularios pon este codigo:


procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for I := 0 to self.MDIChildCount-1 do
if self.ActiveMDIChild<>MDIChildren[I] then
self.MDIChildren[I].SetFocus;
end;


no es exacta exactamente lo que quieres pero cre que arrojara un poco luz a tu problema :)

jachguate
02-08-2004, 18:01:01
Pero esto es lo mismo que yo habia propuesto... lo que puede ocurrir es que el formulario al que estas tratando de asignar el foco no ha sido creado, o ya ha sido destruido.

Hasta luego.

;)

roman
02-08-2004, 18:16:12
Aunque SetFocus puede funcionar, lo usual en un formulario no es usar SetFocus- que se usa más bien para controles que reciben directamente entrada de teclado - sino métodos como BringToFront para activar el formulario.

// Saludos

marto
02-08-2004, 18:59:33
Wop!

Bueno, Roman, BringToFront también es de la clase TControl y, segun la ayuda, sirve para "Puts the control in front of all other controls in its parent control", o sea que tan válido es un método como el otro ;)