PDA

Ver la Versión Completa : evento on new record?


istradlin
09-04-2005, 04:39:01
tengo un form con unos cuantos dbedits y dbnav para la navegacion por los registros de una tabla firebird.

yo quiero que cuando le doy al boton nuevo del dbnav, es decir para insertar un nuevo registro, necesito que se cubra uno de los edits con un determnado valor p.ej. un cadena de texto, el caso es que no se en que evento tengo que programar eso, probe en el onnewrecord del dataset pero no funciona :(

un saludo a todos

Lepe
09-04-2005, 11:10:18
Pues debe funcionar, tienes varias formas de hacerlo, la que me gusta más es:


tblClientesIdCliente.AsString := 'pepeeeeeee que te llaman';


Si el campo tiene un TDBEdit en una ventana, verás el texto nada más hacer un Isnsert o Append sobre la tabla.

Un saludo

jachguate
11-04-2005, 17:27:49
pero no funciona :(

:rolleyes: este.... sin un mensaje de error o clase de excepción esto es ininteligible... :mad:
No estaría de mas una lectura al hilo de la calidad de las preguntas.

Hasta luego.

;)

Pablo Carlos
11-04-2005, 17:41:11
yo quiero que cuando le doy al boton nuevo del dbnav, es decir para insertar un nuevo registro, necesito que se cubra uno de los edits con un determnado valor
un saludo a todos
Hola... tu mismo tienes la respuesta -> evento AfterInsert de la Tablas, si es que la tabla que usas tiene ese evento.- :D
Saludos

jachguate
11-04-2005, 18:03:14
Hola... tu mismo tienes la respuesta -> evento AfterInsert de la Tablas, si es que la tabla que usas tiene ese evento.- :D
Saludos

Lamento no estar de acuerdo, pero creo que efectivamente el evento adecuado es OnNewRecord.

Hasta luego.

;)

Pablo Carlos
12-04-2005, 22:21:37
Lamento no estar de acuerdo

¿Porqué no estás de acuerdo? :confused: por que yo lo uso y me da los resultados esperados... si me podrías aclarar, por el hecho de dejarlo de usar y cambiar al newrecord.
Saludos

roman
12-04-2005, 22:40:15
Buena pregunta. Buscando en los grupos de noticias de Borland veo varias respuestas al asunto que apuntan a una diferencia sutil:

Si asignas valores iniciales en el evento OnNewRecord el registro no se marca como modificado mientras que si lo haces en AfterInsert sí se marca como modificado.

Esto puede o no ser importante dependiendo del manejo subsecuente de la aplicación pero desde un punto de vista lógico me parece más adecuado OnNewRecord ya que dar valores iniciales o por defecto a los campos de un registro no significa que éste se haya modificado- al menos el usuario no lo ha hecho.

También indican que al asignar los valores en OnNewRecord, el registro aparece en los controles visuales ya con los datos mientras que al hacerlo en AfterInsert, los datos aparecen después de que el registro se presenta en los controles visuales.

Nuevamente una diferencia sutil pero si las inicializaciones son muchas y/o complicadas el efecto pudiera ser distinguible y el usuario notaría cómo van apareciendo los valores.

Hago notar que ninguna de las dos diferencias las he probado.

// Saludos

roman
12-04-2005, 22:56:00
Es curioso, la ayuda de Delphi 2 respecto de OnNewRecord dice:


The OnNewRecord event is activated whenever a new record is added to the dataset. The event occurs after the BeforeInsert event and before the AfterInsert event. OnNewRecord enables you to initialize any fields of the record without marking the record as Modified. Any changes to the record after this event will cause Modified to be set.


Sin embargo, en las posteriores versiones 3, 4, 5, 6 y 7 tal aclaración desapareció de la ayuda.

// Saludos

Pablo Carlos
12-04-2005, 23:15:00
Muchas gracias Roman. Son buenas e importantes esas "sutiles diferencias". :eek: Para tenerlo en cuenta... Gracias
Saludos