Ver Mensaje Individual
  #19  
Antiguo 27-09-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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 [-]
{ Guardar datos }
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

Última edición por roman fecha: 27-09-2006 a las 22:21:35.
Responder Con Cita