Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   DBGRID al seleccionar una fila se bloquee la fila seleccion para que no sea utilizado (https://www.clubdelphi.com/foros/showthread.php?t=97098)

MARIO2019 05-12-2024 13:45:06

DBGRID al seleccionar una fila se bloquee la fila seleccion para que no sea utilizado
 
Buenas estoy trabajando con un dbgrid conectado a traves de un datasour a una db. En la tabla producto puedo seleccionar varios productos. Lo que deseo es que al seleccionar un producto, esa FILA del producto se bloquee (YA no se ejecute)para que NO sea seleccionada nuevamente.

Es posible que al confirmar la seleccion (bitbtn) se pueda regresar al primer registro seleccionado. Estuve viendo que se utiliza GetBookmark, que por cierto en el proyecto que utilizo me figura como error al momento de ejecutar.Gracias.

Código Delphi [-]
begin
  fModulo.tRel_Persona.Active := true;
  if fModulo.tRel_Persona.Locate('id_Rel_Persona'),[]) = true
  then begin
    fmodulo.tRel_Persona.Edit;
  end;

Neftali [Germán.Estévez] 05-12-2024 17:33:13

Cita:

Empezado por MARIO2019 (Mensaje 560489)
En la tabla producto puedo seleccionar varios productos.
Lo que deseo es que al seleccionar un producto, esa FILA del producto se bloquee (YA no se ejecute)para que NO sea seleccionada nuevamente.
Es posible que al confirmar la seleccion (bitbtn) se pueda regresar al primer registro seleccionado.


Hola Mario.

Ya te lo he comentado en SO, pero aquí te digo lo mismo.
Tal vez en tu mente tienes claro lo que quieres, pero al menos yo, con esta explicación no acabo de entenderte.

Hablas de "que el producto se bloquee" (ya no se ejecute), no se a qué te refieres con eso, "ejecutar un producto".



Cita:

Empezado por MARIO2019 (Mensaje 560489)
Estuve viendo que se utiliza GetBookmark, que por cierto en el proyecto que utilizo me figura como error al momento de ejecutar.


En cuanto a los bookmarks sirven para guardar la referencia de un registro y luego volver a el.
El código que has puesto es incompleto y por eso te falla. Está bien que cuando te aparezca un error digas cual es, de otra forma es difícil ayudar.

Si quieres ver un ejemplo de cómo utilizar los bookmarks, en la propia ayuda de Delphi tienes uno sencillo.
https://docwiki.embarcadero.com/Code...okmark_(Delphi)

https://docwiki.embarcadero.com/RADS...kValid_methods



Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
   SavePlace: TBookmark;
   PrevValue: Variant;
begin
   with Customers do
   begin
    { Get a bookmark, so that you can return to the same record. }
    SavePlace := GetBookmark;
    try
      { Move to previous record. }
      FindPrior; 
      { Get the value. }
      PrevValue := FindField('Field2').Value;
      {Move back to the bookmark.
      It may not be the next record anymore, 
      in the case when something else is changing the dataset asynchronously. }
      GotoBookmark(SavePlace);
      { Set the value. }
      Edit;
      FindField('Field2').Value := PrevValue;
    except
    ShowMessage('An error encountered');
    end;
  end;
end;


La franja horaria es GMT +2. Ahora son las 10:42:33.

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