Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-02-2014
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 296
Poder: 20
GustavoCruz Va por buen camino
Cool Y dónde está el Focus?

Hola amigos del foro, resulta que cuando presiono la tecla enter se me pierde el focus... el código que tengo es el siguiente

Código Delphi [-]
procedure TfTraslados.Departamento_PChange(Sender: TObject);
begin
  {  'Descripcion'       }
  if (Departamento_P.GetTextLen > 2)and(Departamento_P.Focused) then
    begin
      if fDatos.ConsultarSQL(qBusquedas, 'select Codigo, Departamento '
      +'descripcion from Departamentos where Departamento like ''%'
      +Departamento_P.Text+'%''') then
        DBGrid1.Visible:= True
      else
        DBGrid1.Visible:= False
    end
  else
    begin
      DBGrid1.Visible:= False;
      qBusquedas.Close;
    end;
end;

procedure TfTraslados.Departamento_PKeyPress(Sender: TObject; var Key: Char);
begin
  if (Key = Enter) and (Departamento_P.GetTextLen > 1) then
    begin      
      DBGrid1Exit(Sender);
      Municipio_P.SetFocus;
    end;
end;

procedure TfTraslados.Departamento_PKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case Key of
    VK_UP: begin
      //SelectNext(Grilla, False, True);
      Key := 0;
    end;

    VK_DOWN: begin
      if DBGrid1.Visible then
         DBGrid1.SetFocus;  //SelectNext(Grilla, True, True);
      Key := 0;
    end;
  end;
end;

procedure TfTraslados.DBGrid1Exit(Sender: TObject);
begin
  if (qBusquedas.IsEmpty) or ( not qBusquedas.Active) then
    begin
      DBGrid1.Visible:= False;
      qBusquedas.Close;
      Exit;
    end;

  case buscando of
    0: begin
      depcodigo:= qBusquedas.FieldByName('codigo').AsString;
      Departamento_P.Text:= qBusquedas.FieldByName('descripcion').AsString;
    end;
    1: begin
      depcodigo:= qBusquedas.FieldByName('codigo').AsString;
      Municipio_P.Text:= qBusquedas.FieldByName('descripcion').AsString;
    end;
    2: begin
      depcodigo:= qBusquedas.FieldByName('codigo').AsString;
      EPS_P.Text:= qBusquedas.FieldByName('descripcion').AsString;
    end;
  end;
  DBGrid1.Visible:= False;
  qBusquedas.Close;
end;

procedure TfTraslados.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if(Key = Enter)then
    DBGrid1Exit(Sender);
end;

La cuestión es que cuando presiono enter en el caja de texto, esto me debería llevar la siguiente caja pero no sucede así...
Mi pregunta Cómo hago para saber en donde se encuentra el Focus....

Gracias por vuestro tiempo

Gustavo Cruz
Responder Con Cita
  #2  
Antiguo 11-02-2014
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.025
Poder: 27
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Comprueba el valor de "TabOrder". Es una propiedad de los componentes e indica el orden que se seguirá al pulsar el tabulador o el intro. Es posible que el orden no sea correcto, ya que por defecto es el orden de creación, así que si añades o eliminas componentes puede que te saltes alguno.
Responder Con Cita
  #3  
Antiguo 12-02-2014
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Es un problema cuando se pierde el focus y quedas a oscuras
Bueno, aparte de la broma:
Me da la impresión de que si tienes dos eventos distintos pero similares puede haber confusión, me refiero a los eventos:
Departamento_PKeyPress y Departamento_PKeyDown
Me parece que hacen prácticamente lo mismo, no ?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #4  
Antiguo 12-02-2014
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 296
Poder: 20
GustavoCruz Va por buen camino
Hola Caral, el problema es que esas mismas instrucciones las tengo en otro formulario y allá todo funciona perfectamente bien. Y bueno definitivamente estoy oscuras ...; también he observado el TabOrder y todo está bien.

Habrá alguna función que me indique en qué lugar se encuenta el focus dentro de un formulario?

Gracias por vuestro tiempo

GustavoCruz
Responder Con Cita
  #5  
Antiguo 12-02-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
Cita:
Empezado por GustavoCruz Ver Mensaje
...
Habrá alguna función que me indique en qué lugar se encuenta el focus dentro de un formulario?
...
Hola Gustavo.

Código Delphi [-]
  Screen.ActiveControl.Name;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 12-02-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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 de nuevo.

Ampliando el alcance podes hacer:
Código Delphi [-]
function GetFocusedControlName(const FormName:string): TWinControl;
var
  i: Integer;
begin
  Result:= nil;
  for i :=  0 to Screen.FormCount-1 do
    if (Screen.Forms[i].Name = FormName)and(Screen.Forms[i].Visible) then
    begin
      Result:= Screen.Forms[i].ActiveControl;
      Exit;
    end;
end;

Ejemplo de uso:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  WC: TWinControl;
begin
  WC:= GetFocusedControlName('Form2');
  if Assigned(WC) then
    ShowMessage(WC.Name);
end;
De este modo obtenes el nombre del control que tenga el foco en cualquier Form visible, cuya unidad haya sido incluida en la unidad actual.

Saludos
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 12-02-2014 a las 20:04:11.
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
Verificar si un HWND esta con focus? Alejo15x API de Windows 1 16-03-2010 10:58:29
Donde Esta Mi Bd JUGUE Firebird e Interbase 2 10-03-2009 13:09:10
donde esta el jpeg.pas ? avmm2004 Gráficos 6 13-02-2008 08:20:39
donde esta el error??? UREÑA Conexión con bases de datos 16 28-06-2007 19:45:17
Donde esta el error ?? tgsistemas SQL 2 31-01-2005 14:29:34


La franja horaria es GMT +2. Ahora son las 10:01:02.


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