FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
checkbox asociados a grillas
hola amigos,
necesito un componente free u otro que me permita seleccionar en una grilla un checkbox.. saludos |
#2
|
|||
|
|||
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 |
#3
|
|||
|
|||
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 |
#4
|
||||
|
||||
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:
|
#5
|
|||
|
|||
Muchas gracias, esperare tu codigo
Saludos, |
#6
|
|||
|
|||
Cita:
|
#7
|
||||
|
||||
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;
__________________
Guía de Estilo de los Foros Cita:
|
#8
|
|||
|
|||
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; 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. |
#9
|
||||
|
||||
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:
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|