Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-08-2010
valeria valeria is offline
Miembro
 
Registrado: dic 2008
Posts: 14
Poder: 0
valeria Va por buen camino
Foco en PageControl

Buenas tardes, les quisiera hacer una consulta..resulta que estoy creando por código un page control ,con dos Tabshett y adentro de esos dos TTabSheet creo un dbgrid,mi pregunta es la siguiente cuando yo entro al form donde se encuntra el page control, él foco no se encuntra en el dbgrid...y tengo que cliquear alguna de las celdas para poder moverme en las celdas de ese dbgrid... como puedo hacer para que al entrar en el page control el foco se encuntre directamente en el dbgrid...aclaro que probé en hace DBGDatos.SetFocus,pero me tira error...

Código Delphi [-]
begin
  MiPageControl := TPageControl.Create(Self);
  MiPageControl.Parent := Self;
  MiPageControl.Align:= AlClient;
  DBGDatos:= TDBGrid.Create(self);
  DBGDatos1:= TDBGrid.Create(self);
  Hoja1:= TTabSheet.Create(MiPageControl);
  Hoja2:= TTabSheet.Create(MiPageControl);
  with Hoja1 do
  begin
       PageControl := MiPageControl;
       DBGDatos.Parent := Hoja1;
       DBGDatos.Top:= 60;
       DBGDatos.Width:= 600;
       DBGDatos.DataSource:= self.DataSource1;
       self.ADODataSet1.Active:= true;
      end;
   with Hoja2 do
   begin
       PageControl := MiPageControl;
       DBGDatos1.Parent := Hoja2;
       DBGDatos1.Top:= 60;
       DBGDatos1.Width:= 600;
       DBGDatos1.DataSource:= self.DataSource1;
       self.ADODataSet1.Active:= true;
   end;
     MiPageControl.ActivePage:= Hoja1;
     MiPageControl.ActivePage:= Hoja2;
 end;
Responder Con Cita
  #2  
Antiguo 02-08-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Prueba poniendo la propiedad TabStop de los TabSheet en false.

// Saludos
Responder Con Cita
  #3  
Antiguo 02-08-2010
valeria valeria is offline
Miembro
 
Registrado: dic 2008
Posts: 14
Poder: 0
valeria Va por buen camino
Foco en PageControl

Gracias Román pero no hace nada poner la propiedad TabStop en false; sigue como congelado el dbgrid hasta que no le doy clic en alguna de sus celdas....
Responder Con Cita
  #4  
Antiguo 02-08-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola,

Aparentemente me funciona si pongo el DBGDatos.SetFocus en el evento OnEnter del TabSheet que contiene al DBGrid.

// Saludos
Responder Con Cita
  #5  
Antiguo 03-08-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Valeria.
Una forma podría ser usando el evento OnChanging del TPageControl.

Código:
...
type
  TForm1 = class(TForm)
  private
     procedure MiPageControlChanging(Sender: TObject;
        var AllowChange: Boolean);
  public
     procedure FormCreate(Sender: TObject);
     procedure FormActivate(Sender: TObject);
  end;
var
  Form1: TForm1;
  MiPageControl: TPageControl;
  DBGDatos,DBGDatos1: TDBGrid;
  Hoja1,Hoja2: TTabSheet; 

implementation

procedure TForm1.MiPageControlChanging(Sender: TObject;
  var AllowChange: Boolean);
begin
  case TPageControl(Sender).TabIndex of
    0: DBGDatos.SetFocus;
    1: DBGDatos1.SetFocus;
    3: // otro TTabSheet... 
    4: // ...
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MiPageControl := TPageControl.Create(Self);
  with MiPageControl do
  begin
    Parent := Self;
    Align:= AlClient;
    OnChanging:= MiPageControlChanging;
  end;
  DBGDatos:= TDBGrid.Create(self);
  DBGDatos1:= TDBGrid.Create(self);
  Hoja1:= TTabSheet.Create(MiPageControl);
  Hoja2:= TTabSheet.Create(MiPageControl);
  with Hoja1 do
  begin
    PageControl := MiPageControl;
    DBGDatos.Parent := Hoja1;
    DBGDatos.Top:= 60;
    DBGDatos.Width:= 600;
    DBGDatos.DataSource:= DataSource1;
    ADODataSet.Active:= true;
  end;
  with Hoja2 do
  begin
    PageControl := MiPageControl;
    DBGDatos1.Parent := Hoja2;
    DBGDatos1.Top:= 60;
    DBGDatos1.Width:= 600;
    DBGDatos1.DataSource:= DataSource2;
    ADODataset1.Active:= true;
  end;
end;

{ FormActivate, para que aparezca con foco en DBGDatos al entrar al Form }
procedure TForm1.FormActivate(Sender: TObject);
begin
  with MiPageControl do
  begin
    ActivePage:= Hoja1;
    DBGDatos.SetFocus;
  end;
end;
end.
Las variables las trabajé como globales y usé dos DataSets distintos a fin de probar el ejemplo.
Una cosa mas, el uso del parámetro self, es innecesario en este caso.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 03-08-2010 a las 04:24:06.
Responder Con Cita
  #6  
Antiguo 03-08-2010
valeria valeria is offline
Miembro
 
Registrado: dic 2008
Posts: 14
Poder: 0
valeria Va por buen camino
Gracias Ecfisa!!! ahora si funciona como yo queria,muchisiiiimas gracias!!
Responder Con Cita
Respuesta



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
PageControl {El Muy Mencionado} GeoAvila Varios 6 01-03-2007 13:37:19
Pagecontrol emiliu Varios 3 02-12-2005 07:59:23
Bordes de un PageControl roman OOP 3 08-09-2004 08:56:49
Ayuda con PageControl elbilla Varios 3 19-07-2004 19:57:37
Pagecontrol Fita Varios 2 21-12-2003 05:07:03


La franja horaria es GMT +2. Ahora son las 12:59:53.


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
Copyright 1996-2007 Club Delphi