PDA

Ver la Versión Completa : Problemas con campos DBEDit


jdangosto
12-01-2006, 11:26:11
Buenas.

Tengo el siguiente código.
procedure TForm4.DBGrid2DblClick(Sender: TObject);
begin
//al hacer doble click asigno los datos al nuevo form para su modificacion
modificar.DBEdit1.Text := dbgrid1.SelectedField.DataSet.FieldByName('Matricula').AsString;
modificar.DBEdit2.Text := dbgrid1.SelectedField.DataSet.FieldByName('Identificacion').AsString;
modificar.DBEdit7.Text := dbgrid1.SelectedField.DataSet.FieldByName('Combus').AsString;

Es algo más largo, pero será suficiente.

El objetivo es que al clickear dos veces sobre una fila del grid pase los datos unos dbedit de un formulario. Todo esto funciona correctamente.

El problema viene cuando clickeo encima de cualquier campo dbedit para modificarlo, automáticamente cambia los datos que se le han pasado por el primer dato que aparece en la tabla a la que está enlazado.

La idea es bloquear estos campos para que no cambien al intentar modificarlos y actualizar la Base de Datos.

¿Es normal que cambie los datos al clickear sobre los DBEdit? ¿Cómo puedo solventar este problema?

Desde ya!, Gracias

marcoszorrilla
12-01-2006, 12:26:22
El funcionamiento que indicas no es normal, tienes que revisar porque por algún motivo desconocido el puntero de la tabla se mueve y cambia de registro.

Un Saludo.

maeyanes
12-01-2006, 16:10:25
Yo lo que veo raro es que estés asignando directamente la propiedad Text de los TDBEdit.

Estos componentes tienen una propiedad DataSource, la cual debería apuntar al mismo DataSource que apunta al DBGrid, así los TDBEdit siempre mostraran los datos del registro actual. Todo esto sin necesidad de que asignes directamente los valores del registro seleccionado.

Para hacer algo como lo que muestras, mejor usa componentes TEdit normales. Lo único es que al salir de la forma de edición tendrías que copiar los valores nuevos de los TEdit de vuelta a los campos del registro que estás queriendo editar.



Saludos...

reina
12-01-2006, 18:34:35
Como dice la rta anterior deberias usar TEdit ..o bien asignar los valores al campo de la tabla directamente y te apareceran en el texto de los DbEdit, ami me pasaba algo similar anteriormente cuando queria asignar a la propiedad text del dbedit...saludos!




LA PATRIA SERA LIBRE!

jdangosto
13-01-2006, 10:05:50
Con los Edit funciona correctamente.

Gracias