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: 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.

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(&ipsizeof(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, &ipsizeof(INPUT));
}

void __fastcall TForm1::DBGrid1KeyDown(TObject *SenderWORD &Key,
      
TShiftState Shift)
{
  if (
Key == VK_F5) {  // ( F5 por ejemplo)
    
sendKey(VK_F2,   KEYEVENTF_KEYDOWN);
    
sendKey(VK_F2,   KEYEVENTF_KEYUP);
    
sendKey(VK_MENUKEYEVENTF_KEYDOWN);
    
sendKey(VK_DOWNKEYEVENTF_KEYDOWN);
    
sendKey(VK_DOWNKEYEVENTF_KEYUP);
    
sendKey(VK_MENUKEYEVENTF_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