Ver Mensaje Individual
  #3  
Antiguo 03-05-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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.

También creo que un filtrado desde el TDataSet o mediante una consulta SQL sería lo mas adecuado.

Pero contestando al título de tu consulta, podes usar el evento OnKeyDown del DBGrid y la función API SendInput para desplegar el PickList, vg:

Código PHP:
const KEYEVENTF_KEYDOWN = 0;  

void sendKey(const WORD &key, const DWORD &flag)
{
  
INPUT ip;

  
ZeroMemory(&ip, sizeof(INPUT));
  
ip.type           = INPUT_KEYBOARD;
  
ip.ki.wScan       = 0;
  
ip.ki.time        = 0;
  
ip.ki.dwExtraInfo = 0;
  
ip.ki.dwFlags     = flag;
  
ip.ki.wVk         = key;
  
SendInput(1, &ip, sizeof(INPUT));
}

void __fastcall TForm1::DBGrid1KeyDown(TObject *Sender, WORD &Key,
      
TShiftState Shift)
{
  if (
Key == VK_F5) {  // ( F5 por ejemplo)
    
sendKey(VK_F2,   KEYEVENTF_KEYDOWN);
    
sendKey(VK_F2,   KEYEVENTF_KEYUP);
    
sendKey(VK_MENU, KEYEVENTF_KEYDOWN);
    
sendKey(VK_DOWN, KEYEVENTF_KEYDOWN);
    
sendKey(VK_DOWN, KEYEVENTF_KEYUP);
    
sendKey(VK_MENU, KEYEVENTF_KEYUP);
  }
} 
Una vez desplegada la lista se comporta de forma similar a un ComboBox al presionar letras.

Saludos
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 04-05-2016 a las 00:33:39. Razón: optimizar parámetros
Responder Con Cita