Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problemas con campos DBEDit (https://www.clubdelphi.com/foros/showthread.php?t=29093)

jdangosto 12-01-2006 11:26:11

Problemas con campos DBEDit
 
Buenas.

Tengo el siguiente código.
Código Delphi [-]
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

...asi es
 
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


La franja horaria es GMT +2. Ahora son las 20:38:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi