Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Cambiar foco de formulario (https://www.clubdelphi.com/foros/showthread.php?t=12954)

jollodel 02-08-2004 09:46:42

Cambiar foco de formulario
 
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

No funciona :-(
 
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:

Código Delphi [-]
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 ;)


La franja horaria es GMT +2. Ahora son las 23:25:26.

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