Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-11-2003
pruz pruz is offline
Miembro
 
Registrado: sep 2003
Posts: 170
Poder: 21
pruz Va por buen camino
Question checkbox asociados a grillas

hola amigos,
necesito un componente free u otro que me permita seleccionar en una grilla un checkbox..

saludos
Responder Con Cita
  #2  
Antiguo 07-11-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
si quieres programarlo tu, en mi web tienes una demo del componente TRxDbGrid donde muestro cómo hacer eso.

Si quieres un componente ya hecho, puedes mirar en Torrys, hay varios. Yo te puedo aconsejar el TopGrid de objectsight. Es muy bueno y completo
Responder Con Cita
  #3  
Antiguo 07-11-2003
pruz pruz is offline
Miembro
 
Registrado: sep 2003
Posts: 170
Poder: 21
pruz Va por buen camino
Vi tu pagina y baje el fuente pero no me deja chekear el check,

en cuanto a los de torry son trial, y yo busco un gratis

gracias
Responder Con Cita
  #4  
Antiguo 07-11-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Yo lo hago en el mismo DbGrid de Delphi, a la noche si llego pronto, pongo el código a continuación de este hilo, me baso en un ejemplo de Marco Cantù.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 07-11-2003
pruz pruz is offline
Miembro
 
Registrado: sep 2003
Posts: 170
Poder: 21
pruz Va por buen camino
Muchas gracias, esperare tu codigo

Saludos,
Responder Con Cita
  #6  
Antiguo 07-11-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
pruz comentó:
Vi tu pagina y baje el fuente pero no me deja chekear el check,
Cierto, la demo de la web es de sólo lectura. Pero para modificarlo, sólo tendrías que, por ejemplo, controlar el clic o el doble clic en el componente
Responder Con Cita
  #7  
Antiguo 07-11-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
No es que sea muy pronto, se me ha caido una Novell y vengo un poco cansado pero ahí va lo prometido:

DbChkSumar, es un DbCheckBox que está vinculado al campo Tipo booleano
que queremos controlar desde la rejilla, en este caso se trata de
marcar que líneas de la factura queremos que se sumen.

GrLineas, es el nombre que le he dado a la rejilla

Código:
procedure TfrFacturas.GrLineasColEnter(Sender: TObject);
begin
  if GrLineas.Columns [GrLineas.SelectedIndex].
      Field = DmLux.LinfactSumar  then
    DbChkSumar.Visible := True
  else
    DbChkSumar.Visible := False;
end;


procedure TfrFacturas.GrLineasDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if (gdFocused in State) and
    (Column.Field = DmLux.LinfactSumar) then
  begin
    DbchkSumar.SetBounds (
      Rect.Left + grLineas.Left + 1,
      Rect.Top + grLineas.Top + 1,
      Rect.Right - Rect.Left,
      Rect.Bottom - Rect.Top);
  end;
end;

procedure TfrFacturas.GrLineasKeyPress(Sender: TObject; var Key: Char);
begin
  if DbChkSumar.Visible and (Ord (Key) > 31) then
  begin
    Key := #0;
    DmLux.Linfact.Edit;
    DbChkSumar.Checked := not
      DbChkSumar.Checked;
    DbChkSumar.Field.AsBoolean :=
      DbChkSumar.Checked;
  end;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #8  
Antiguo 08-11-2003
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Poder: 21
Descendents Va por buen camino
Con tu Permiso MarcosZorrilla, pongo lo que yo utilizo,reciclado de tu código.

Al Grid,al campo booleano,se le pone el readonly a true, si no al modificarlo por teclado daria error.

ADOTable1:Tabla
trastero:Campo boleano
Grlineas:Grid
DbChkSumarClick:Tcheckbox;

Código:
procedure TForm1.GrLineasColEnter(Sender: TObject);
begin
  if GrLineas.Columns [GrLineas.SelectedIndex].
      Field = ADOTable1trastero then
    DbChkSumar.Visible := True
  else
    DbChkSumar.Visible := false;

end;

procedure TForm1.GrLineasDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 if (gdFocused in State) and
    (Column.Field = ADOTable1trastero) then
  begin
    DbchkSumar.SetBounds (
      Rect.Left + grLineas.Left + 1,
      Rect.Top + grLineas.Top + 1,
      Rect.Right - Rect.Left,
      Rect.Bottom - Rect.Top);
      dbchksumar.Checked := ADOTable1Trastero.value;
  end;
end;

procedure TForm1.DbChkSumarClick(Sender: TObject);
begin
     ADOTable1.edit;
     ADOTable1Trastero.value := DbChkSumar.Checked;
     adotable1.post;
  end;

procedure TForm1.GrLineasKeyPress(Sender: TObject; var Key: Char);
begin
 if dbchksumar.visible then begin
      if dbchksumar.Checked = true then begin
         dbchksumar.Checked := false;
         dbchksumarclick(nil);
         exit;
      end;
      if dbchksumar.Checked = false then begin
         dbchksumar.Checked := true;
         dbchksumarclick(nil);
         exit;
      end;

 end;
end;
De esta manera al moverme a través de los registros, se me refresca el checkbox.
Se puede modificar el checbox apretando cualquier tecla, o con el click.
Si se quiere una tecla determinada, se hace un filtro if Key tal etc...

Un saludo

Última edición por Descendents fecha: 08-11-2003 a las 03:08:46.
Responder Con Cita
  #9  
Antiguo 08-11-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Aunque probablemente se deduzca de mi código, se me olvidó decir que el DbCheckBox, lo pongo sobre la barra de títulos de la rejilla con la propiedad visible a falso, para que aparezca y se dibuje en el registro que estamos editando en ese momento.

En cuanto a las modificaciones propuestas por el amigo Descendents, me parece muy bien, pues lo bonito de un hilo es que haya continuidad y que cada uno aporte distintos puntos de vista y soluciones, de esta manera no solamente se contesta al que pregunta, sino que se ilustra a quien solamente lea el tema por curiosidad.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
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


La franja horaria es GMT +2. Ahora son las 16:38:21.


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