Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-11-2010
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Unhappy DbLookUpCombobox

Hola a todos los del foro. Aca de vuelta con otra duda.
Trabajo con Interbase y Delphi7
Estoy haciendo practicas con un programa y en la ventana en la que registro una factura tengo un JvDBgrid en donde mediante un cuadro de dialogo selecciono un producto, despues de seleccionado el producto en las demas columnas se muestra la unidad de medida del producto y el precio unitario.
Mi duda esta en que me piden que la unidad de medida pueda ser modificada por el usuario digamos que esta seleccionada la opcion KG (kilos) pero si sobre ese campo presiono la tecla "U" cambia a Unidades (por ejemplo).
las unidades de medida estan almacenadas en otra tabla asi que pense en utilizar en DBlookupcombobox o jvDBlookupcombobox en mi caso; pero su comportamiento no es el que necesito ya que me obliga a desplegar la lista y seleccionar la opcion en vez de responder al teclado de la forma q describi. No se si alguien sabe de algun componente o alguna otra manera de realizar lo que necesito.
De antemano muchas gracias...
Responder Con Cita
  #2  
Antiguo 27-11-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 Caminante.

Si queres hacer verificar si se presionó la letra 'U' o 'u', se complica ya que cuando la presiones, el DBGrid va a entrar en modo edición. ('u' es una letra más...).
Más fácil me parece detectar por ejemplo la combinación 'Ctrl+U'.
Lo podés hacer hacer así:
Código Delphi [-]
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if ((ssCtrl in Shift) and (Lo(Key) in[Ord('U'),Ord('u')]))and
    (DBGrid1.SelectedField.FullName = 'Nombre_del_campo')  then
  begin
    ...
    // CAMBIAR LAS UNIDADES
    ...
  end;
end;

Saludos.
Responder Con Cita
  #3  
Antiguo 27-11-2010
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Unhappy Dblookupcombobox

Gracias por responder.
Bueno lo que yo necesito es que al presionar una tecla al estar situado en el JVdblookupcombobox se seleccione la unidad de medida mas parecida (Busqueda incremental). mi problema es que al estar el control dentro del JvDBgrid no me permite hacerlo sino que tengo que desplegar la lista con el mouse y lo que yo necesito es que el elemento se seleccione al presionar una tecla. En un combobox normal con la opcion Style a csDropDownList si puedo hacerlo. Al presionar una tecla se selecciona el item que inicia con dicha letra. Necesito realizar lo mismo pero en un JvDbLookupCombobox.
Gracias
Responder Con Cita
  #4  
Antiguo 27-11-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 Caminante.
Ahora entiendo lo que buscas.
Podrías utilizar un ComboBox insertándolo en el campo correspondiente de la grilla.
No uso el JVdblookupcombobox, pero esto funciona correctamente en un TDBGrid, probá si te funciona con ese componente

Código Delphi [-]
...
interface
procedure TForm1.FormShow(Sender: TObject);
begin
  ComboBox1.Clear;
  ComboBox1.Items.Add('Unidades');
  ComboBox1.Items.Add('Kilogramos');
  ComboBox1.Style:= csDropDownList; // o el estilo que quieras
  ComboBox1.Visible:= False;
end;

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if (gdFocused in State)and(Column.Field.FieldName = 'Campo_de_Unidades') then
  begin
    ComboBox1.Left := Rect.Left + DBGrid1.Left + 2;
    ComboBox1.Top := Rect.Top + DBGrid1.top + 2;
    ComboBox1.Width := Rect.Right - Rect.Left;
    ComboBox1.Height := Rect.Bottom - Rect.Top;
    ComboBox1.Visible := True;
  end;
end;

procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin
   if DBGrid1.SelectedField.FieldName = 'Campo_de_Unidades' then
    ComboBox1.Visible:= False;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Caption:= (Sender as TComboBox).Text;
  if (Sender as TComboBox).Text = 'Unidades' then
   // PASAR A UNIDADES
  else
   // PASAR A KILOGRAMO
end;

Ajusté los campos y la propiedad visible en el evento OnShow para mayor legibilidad, pero lo podrías asignar en tiempo de diseño.

Saludos.

Última edición por ecfisa fecha: 28-11-2010 a las 00:10:20.
Responder Con Cita
  #5  
Antiguo 28-11-2010
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Thumbs up Dblookupcombobox

Gracias por la respuesta voy a probarlo
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
DBLookupCombobox Cañones OOP 2 27-04-2007 18:40:29
DBLookupComboBox ChristianP Varios 3 15-03-2007 23:12:28
dos DBLookupComboBox.......... inexperto Conexión con bases de datos 1 15-07-2005 06:55:17
DBLookupComboBox karocs Conexión con bases de datos 3 11-08-2004 21:20:09
DBLookUpComboBox silviodp Conexión con bases de datos 3 18-06-2004 06:31:14


La franja horaria es GMT +2. Ahora son las 11:55:47.


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