Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-11-2013
giocatore giocatore is offline
Miembro
 
Registrado: dic 2005
Posts: 31
Poder: 0
giocatore Va por buen camino
Exclamation seleccionar una fila y bloquear el resto dbgrid

buenas tardes, quisiera me ayuden en mi duda que es la siguiente:

Quiero poder seleccionar una fila de un dbgrid y al momento de hacer clic en la celda toda la fila pueda ser editable y el resto de las filas queden como "read only" espero puedan ayudarme. Un saludo!
Responder Con Cita
  #2  
Antiguo 16-11-2013
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Hola.

Imagino que sabrás que en el dbgrid es bastante engorroso controlar la edición: tipos de campo, longitud, validaciones, etc. No sé si lo que quieres es posible pero igual te interesaría más dejar el dbgrid en modo lectura y que cuando se pulse en la fila deseada se activara un panel con edits para poder editar los campos del mismo.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #3  
Antiguo 16-11-2013
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Cita:
Empezado por giocatore Ver Mensaje
buenas tardes, quisiera me ayuden en mi duda que es la siguiente:

Quiero poder seleccionar una fila de un dbgrid y al momento de hacer clic en la celda toda la fila pueda ser editable y el resto de las filas queden como "read only" espero puedan ayudarme. Un saludo!
No le veo mucho sentido a esto. Sabras que al cambiar de fila el registro automaticamente seria grabado asi q de poco serviria un "readonly" a otras filas.
En ese caso mejor editar los registro en otro form como indica marteens en la cara oculta...

Saludos
Responder Con Cita
  #4  
Antiguo 28-11-2013
giocatore giocatore is offline
Miembro
 
Registrado: dic 2005
Posts: 31
Poder: 0
giocatore Va por buen camino
Cita:
Empezado por Caminante Ver Mensaje
No le veo mucho sentido a esto. Sabras que al cambiar de fila el registro automaticamente seria grabado asi q de poco serviria un "readonly" a otras filas.
En ese caso mejor editar los registro en otro form como indica marteens en la cara oculta...

Saludos
Gracias por los consejos, pero como se imaginarán siempre queda la duda de como hacerlo y la verdad por más que no lo use me interesa mucho saber como resolver este problema.
Responder Con Cita
  #5  
Antiguo 28-11-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por giocatore Ver Mensaje
Gracias por los consejos, pero como se imaginarán siempre queda la duda de como hacerlo y la verdad por más que no lo use me interesa mucho saber como resolver este problema.
Hola giocatore.

Un modo puede ser:
Código Delphi [-]
type
  TForm1 = class(TForm)
    ...
    DBGrid1: TDBGrid;
    bnGuardar: TButton; 
    procedure FormCreate(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure bnGuardarClick(Sender: TObject);
  private
    FDisplacement: Boolean;
    procedure DataSetBeforeScroll(DataSet: TDataSet);
  public
  end;

...

implementation

procedure TForm1.DataSetBeforeScroll(DataSet: TDataSet);
begin
  if not FDisplacement then // ¿ Desplazamiento prohibido ?
    Abort; // Si, abortar
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  FDisplacement := True; // permitir desplazamiento
  DBGrid1.DataSource.DataSet.BeforeScroll := DataSetBeforeScroll;
end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  FDisplacement := False; // prohibir desplazamiento
end;

// En algún punto del programa se debe permitir nuevamente el desplazamiento, por ejemplo:
procedure TForm1.bnGuardarClick(Sender: TObject);
begin
  with DBGrid1.DataSource.DataSet do
    if State = dsEdit then
      DBGrid1.DataSource.DataSet.Post;
  FDisplacement := True; // permitir desplazamiento
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
DBGRID ¿como seleccionar fila y obtener datos de la fila ? JXJ Varios 5 18-04-2017 02:50:14
¿Se puede dejar fija o bloquear la fila seleccionada en un dbgrid? Angel Fernández Varios 6 23-07-2011 04:35:31
Seleccionar fila DBgrid ?? Coco_jac Varios 3 25-05-2010 16:58:41
Seleccionar una fila en un DBGRID erickperez6 Conexión con bases de datos 1 02-05-2004 16:49:34
Seleccionar una fila de un dbgrid NuncaMas Conexión con bases de datos 3 22-01-2004 09:55:48


La franja horaria es GMT +2. Ahora son las 01:41:36.


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
Copyright 1996-2007 Club Delphi