PDA

Ver la Versión Completa : Dbgrid delphi 7


Dergon
24-08-2017, 16:26:31
Buenos dias amigo,necesito ayuda,estoy utilizando el dbgrid para hacer una tela de ventas de productos,estoy utilizando dos dbedit,una para el codigo del producto y la otra pra la cantidad,necesito que al salir del dbedit2 de cantidad,me mude directamente a la siguiente columna, porque para agregar otro prodcuto cada vez que voy a agregar otro producto tengo que usar el tab para mudar de lugar del dbgrid,voy a agregar una foto para facilitar.
https://ibb.co/cw6Y2Q

duilioisola
24-08-2017, 16:38:00
Tienes dos DBEdit y un DBGrid.
No entiendo que debe hacer cuando sale del segundo DBEdit.
Además de esto, ¿cómo sales del DBEdit? suopongo que presionas TAB para saltar al siguiente campo.
Quizás te refieres al Control que tiene el foco cuando sales del segundo DBEdit.
Si es eso, quizás puedas solucionarlo metiendo código en OnExit del segundo DBEdit.

procedure TForm.DBEdit2Exit(Sender: TObject);
begin
DBEdit1.SetFocus;
end;

oscarac
24-08-2017, 16:45:56
buscar cambiar TAB por Enter aqui en el foro

Dergon
24-08-2017, 17:42:00
Agradesco mucho tu respuesta,y por tu tiempo,es lo siguiente,al informar el codigo,luego va para colocar la cantidad ,solo que al informar la cantidad necesito que me deje inserir otro producto,pero para informar tengo que bajar al debgrid para asi dejarme agregar otro producto,voy a colocar una imagen ya con el codigo compilado.

Imagen al agragar el producto
https://ibb.co/j4tubk
Imagen depues de ir con tab hasta la siguiente columna
https://ibb.co/ch9jbk

duilioisola
25-08-2017, 10:19:21
Agradesco mucho tu respuesta,y por tu tiempo,es lo siguiente,al informar el codigo,luego va para colocar la cantidad ,solo que al informar la cantidad necesito que me deje inserir otro producto,pero para informar tengo que bajar al debgrid para asi dejarme agregar otro producto,voy a colocar una imagen ya con el codigo compilado.

Supongo que cuando te refieres a "Siguiente columna" en realidad te refieres a "Sieguiente Linea" dentro del grid.
Al ir a la siguiente línea, se genera un insert en la tabla.

Por lo tanto lo que puedes hacer es en el código de OnExit del segundo DBEdit decirle que guarde la línea (Post; ) Luego que inserte una nueva línea (Insert; o Append; ) y luego ponga el foco en el primer DBEdit.


procedure TForm.DBEdit2Exit(Sender: TObject);
begin
// Si estoy editando o insertando un registro
if (Tabla.State in [dsEdit, dsInsert]) then
// Guardo los datos del registro en el que estoy
Tabla.Post;

// Inserto un nuevo registro
Tabla.Insert;

// Foco en el componente que pide el producto
DBEdit1.SetFocus;
end;

Dergon
27-08-2017, 21:00:28
Muchas gracias,me ha funcionado de maravilla.