Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-04-2018
Delphi01 Delphi01 is offline
Miembro
 
Registrado: Nov 2015
Ubicación: Barcelona,España
Posts: 44
Poder: 0
Delphi01 Va por buen camino
Question DBLookUpComboBox mostrar el siguiente KeyValue

Hola,
Tengo problema con DBLookUpComboBox .

Ejemplo:
Código Delphi [-]
DBLookUpComboBox1.KeyValue :='X' ;
el texto que muestra DBLookUpComboBox1 es 'X'

yo quiero un código para ir o mostrar el siguiente keyValue o el siguiente item de la lista de mi DBLookUpComboBox1.

Muchas Gracias .

Última edición por Casimiro Notevi fecha: 16-04-2018 a las 10:27:07.
Responder Con Cita
  #2  
Antiguo 16-04-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: Dec 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.099
Poder: 30
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.
Cita:
Empezado por Delphi01 Ver Mensaje
...
yo quiero un código para ir o mostrar el siguiente keyValue o el siguiente item de la lista de mi DBLookUpComboBox1.
Tendrías que accionar sobre el dataset asociado.
Código Delphi [-]
// DS: DataSet asociado - DBL: Combo - fldname: Nombre del campo - fldValue: valor buscado v.gr.: 'X'
procedure LookupComboLocateNext(DS: TDataSet; DBL: TDBLookupComboBox; const fldName, fldValue: string);
begin
  if DS.Locate(fldName, fldValue, []) then
  begin
    DS.Next;
    DBL.KeyValue := fldName;
  end;
end;

Ejemplo del uso:
Código Delphi [-]
...
  LookupComboLocateNext(tu_DataSet , tu_DBLookupComboBox, 'tu_FIELD_NAME', 'tu_FIELD_VALUE');

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 16-04-2018
Delphi01 Delphi01 is offline
Miembro
 
Registrado: Nov 2015
Ubicación: Barcelona,España
Posts: 44
Poder: 0
Delphi01 Va por buen camino
Smile

Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Tendrías que accionar sobre el dataset asociado.
Código Delphi [-]// DS: DataSet asociado - DBL: Combo - fldname: Nombre del campo - fldValue: valor buscado v.gr.: 'X' procedure LookupComboLocateNext(DS: TDataSet; DBL: TDBLookupComboBox; const fldName, fldValue: string); begin if DS.Locate(fldName, fldValue, []) then begin DS.Next; DBL.KeyValue := fldName; end; end;


Ejemplo del uso:
Código Delphi [-]... LookupComboLocateNext(tu_DataSet , tu_DBLookupComboBox, 'tu_FIELD_NAME', 'tu_FIELD_VALUE');


Saludos
Hola! ecfisa, muy amable de tu parte maestro contestar mi pregunta tan rápido .
Pero , yo no quiero localizar o buscar y despues hacer el next, sino yo tengo un texto seleccionado cualquier texto de los items de mi DBLookupCombox quiero pasar al siguiente y mostrarlo ,

DBLookupCombox no tiene el itemindex pero sí tiene la propiedad ListFieldIndex. se puede utilizar ListFieldIndex en mi caso ? Cómo será el código ?
Saludos cordiales .
Responder Con Cita
  #4  
Antiguo 16-04-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: Dec 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.099
Poder: 30
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 Delphi01.

Cita:
Empezado por Delphi01 Ver Mensaje
DBLookupCombox no tiene el itemindex pero sí tiene la propiedad ListFieldIndex. se puede utilizar ListFieldIndex en mi caso ? Cómo será el código ?
En realidad ListFieldIndex sirve para especificar que campo de la propiedad ListField se va a usar para la búsqueda incremental y no veo como podría ayudarte en este caso.

Pero a ver si ahora entendí lo que buscas y te sirve de este modo:
Código Delphi [-]
procedure LookupComboNextItem(LCB: TDBLookupComboBox);
  procedure VKeyPress(const aKey: Word);
  var
    ti: TInput;
  begin
    ZeroMemory(@ti, SizeOf(ti));
    ti.Itype      := INPUT_KEYBOARD;
    ti.ki.wVk     := aKey;
    ti.ki.dwFlags := 0;
    SendInput(1, ti, SizeOf(ti));
  end;
begin
  LCB.DropDown;
  VKeyPress(VK_DOWN);
  VKeyPress(VK_RETURN);
end;

Ejemplo de uso:
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
  DBLookupComboBox1.SetFocus;
  LookupComboNextItem(DBLookupComboBox1);
end;
Sin embargo, el código solo simula el accionar de un usuario y no elude el echo de que el cursor del TDataSet asociado se desplace.

Saludos
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 16-04-2018 a las 20:38:59.
Responder Con Cita
  #5  
Antiguo 16-04-2018
Delphi01 Delphi01 is offline
Miembro
 
Registrado: Nov 2015
Ubicación: Barcelona,España
Posts: 44
Poder: 0
Delphi01 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola Delphi01.


En realidad ListFieldIndex sirve para especificar que campo de la propiedad ListField se va a usar para la búsqueda incremental y no veo como podría ayudarte en este caso.

Pero a ver si ahora entendí lo que buscas y te sirve de este modo:
Código Delphi [-]
procedure LookupComboNextItem(LCB: TDBLookupComboBox);
  procedure VKeyPress(const aKey: Word);
  var
    ti: TInput;
  begin
    ZeroMemory(@ti, SizeOf(ti));
    ti.Itype      := INPUT_KEYBOARD;
    ti.ki.wVk     := aKey;
    ti.ki.dwFlags := 0;
    SendInput(1, ti, SizeOf(ti));
  end;
begin
  LCB.DropDown;
  VKeyPress(VK_DOWN);
  VKeyPress(VK_RETURN);
end;

Ejemplo de uso:
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
  DBLookupComboBox1.SetFocus;
  LookupComboNextItem(DBLookupComboBox1);
end;
Sin embargo, el código solo simula el accionar de un usuario y no elude el echo de que el cursor del TDataSet asociado se desplace.

Saludos
Hola otra vez :
Muchas gracias ! ,
tengo el DBLookupComboBox con las lineas :
X1
x2
x3
x4...

yo he visto cuando escribo
DBLookupComboBox.keyvalue:='x1'; muestra 'X1'
y asi ..
DBLookupComboBox.keyvalue:='x2'; muestra 'X2'
DBLookupComboBox.keyvalue:='x1'; muestra 'X3'.......
eso quiere decir que el cursor de dataset se esta desplasando ?
yo no me importa si desplace o no lo importante cuando haga click en un button por ejemplo si esta mostrando 'X1' pasa amostrar 'X2' y asi ...next ...
saludos ..
Responder Con Cita
  #6  
Antiguo 16-04-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: Dec 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.099
Poder: 30
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.

Cita:
Empezado por Delphi01 Ver Mensaje
...
yo no me importa si desplace o no lo importante cuando haga click en un button por ejemplo si esta mostrando 'X1' pasa amostrar 'X2' y asi ...next ...
saludos ..
Entonces el código anterior hace exactament lo que buscas.

Si no te importan los desplazamientos, el siguiente método es una alternativa mas simple:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  DS: TDataSet;
begin
  DS := DBLookupComboBox1.ListSource.DataSet;
  DS.Next;
  DBLookupComboBox1.KeyValue := DS.FieldValues[DBLookupComboBox1.KeyField];
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 18-04-2018
Delphi01 Delphi01 is offline
Miembro
 
Registrado: Nov 2015
Ubicación: Barcelona,España
Posts: 44
Poder: 0
Delphi01 Va por buen camino
Muchas Gracias maestro ecfisa , me funcionó !!!, la verdad ,sin duda el mejor club Delphi .
saludos cordiales .
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
Mostrar datos de un DBLookupComboBox cristian22 Varios 3 21-05-2016 07:17:02
no mostrar un registro en dblookupcombobox gonza_619 Varios 3 10-01-2011 23:28:34
Mostrar Keyfield en DBLookupComboBox Vlady OOP 1 29-10-2008 15:16:09
Mostrar dos campos en un dblookupcombobox el_barto Conexión con bases de datos 3 25-07-2005 18:46:00
Propiedad KeyValue i.larranaga Conexión con bases de datos 0 01-10-2004 14:18:07


La franja horaria es GMT +2. Ahora son las 00:30:31.


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