A ver. A riesgo de ser algo necio me parece que hay que recapitular las cosas.
Un DBEdit muestra los datos del registro activo en la tabla. Siempre.
Lo voy a repetir:
Un DBEdit muestra los datos del registro activo en la tabla. Siempre.
Si se hace un DBEdit.Clear, estaremos borrando los datos del campo asociado en el registro actual. ¿Es esto lo que se quiere? Yo creo que no.
Habría que empezar a preguntarse, ¿cómo es que esos DBEdit aparecen en blanco en primer lugar?
Porque se hace un ZTable.Insert.
ZTable.Insert
no tiene por finalidad limpiar los campos; lo que hace es insertar un registro en blanco, cosa que suena parecida pero es muy distinta. Y al ser un registro en blanco, los DBEdits muestran datos en blanco, pero siguen siendo los datos del registro activo: el registro en blanco.
Dijiste al comienzo:
Cita:
Empezado por Ade
pero veo la pantalla algo sosa y pense q si el usuario introducia datos y no deseaba insertar q??
pues un boton , ya fuera cancelar o limpiar, cuya funcionalidad fuera esa la de limpiar los dbedit.
pero no tengo ningun edit,pensaba q con ellos deberia de hacer:
|
Si el usuario desea ya no introducir datos entonces tienes que cancelar la operación, y eso se hace con ZTable1.Cancel.
Puedes ciertamente limpiar los DBEdit, pero sigues teniendo un registro extra.
Ahora, si el punto es meramente ornamental
Cita:
Empezado por Ade
veo la pantalla algo sosa
|
entonces, como dice Caral, usa Edits normales en lugar de DBEdits. Pero ten en cuenta que entonces la dinámica cambia. Cuando desees guardar los datos haces el Insert y pasas el contenido de los Edits
directamente a los campos:
Código Delphi
[-]
ZTable.Insert;
ZTable.FieldByName('campo1').AsString := Edit1.Text;
ZTable.FieldByName('campo2').AsString := Edit2.Text;
...
ZTable.Post;
Y así puedes poner en blanco los Edits cuando quieras.
// Saludos