Acá lo tengo cocinado por ahora anda bien, puedo recorrer el dbgrid con el cursor sin necesidad de usar el mouse en ningún momento.
Con un poco de trabajo el dbgrid se convirtió en una lista desplegable muy cómoda.
Este es el código:
Código Delphi
[-]
procedure TAltasForm.CiudadEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_DOWN then
begin
QueryDataModule.CiudadZQuery.Next;
idciu:=QueryDataModule.CiudadZQuery.FieldByName('Ciudad').Text;
end;
if Key = VK_UP then
begin
QueryDataModule.CiudadZQuery.Prior;
idciu:=QueryDataModule.CiudadZQuery.FieldByName('Ciudad').Text;
end;
end;
procedure TAltasForm.CiudadEditKeyPress(Sender: TObject; var Key: Char);
begin
DBGrid1.Visible:=True;
DireccionLabel.Visible:=False;
EmailLabel.Visible:=False;
with QueryDataModule.CiudadZQuery do
begin
If active then close;
SQL.Clear;
Sql.Add('Select * from ciudad where ciudad.Ciudad like '''+CiudadEdit.Text+'%'' and ciudad.ID_provincia=ro');
ParamByName('pro').AsAnsiString:=ProvinciaDBLookupComboBox.KeyValue;
Open;
Active:=True;
end;
if QueryDataModule.CiudadZQuery.IsEmpty then
begin
ShowMessage('No hay Resultados');
DBGrid1.Visible:=False;
CiudadEdit.Clear;
end;
If Key = #13 Then
begin
CiudadEdit.Text:=(''+idciu+'');
DBGrid1.Visible:=False;
EmailLabel.Visible:=True;
DireccionLabel.Visible:=True;
end;
end;
Recién le encontré un problema, si uso las flechas me guardar la ciudad en la variable como corresponde, el drama es cuando selecciono la primera ciudad, osea cuando no uso las fechas y no me guarda la variable !!!
Me estoy complicando demasiado me parece.
Saludos!!