Ver la Versión Completa : Solo una columna del Grid
Quisiera que dado el valor de un campo(false/true) una columna del grid se pusiera de negrita, el tema es que soy capaz de ponerle un color distinto pero lo de negrita lo tengo atragantado.
Saludos.
ContraVeneno
28-04-2008, 19:29:52
Control.Font.Bold.Enabled := True;
Contro.Font.Bold.Enabled := UnDataset.FieldByname('UnCampo').AsBoolean;
no se que estaba pensando.
Hola muli, para poner en negrita:
DBGridRegistros.Canvas.Font.Style := [fsBold];
Saluditos
roman
28-04-2008, 19:54:02
Control.Font.Bold.Enabled := True;
:confused:
DBGridRegistros.Canvas.Font.Style := [fsBold];
Yo lo haría ligeramente distinto:
DBGridRegistros.Canvas.Font.Style := DBGridRegistros.Canvas.Font.Style + [fsBold];
para no machacarnos algún otro estilo presente.
// Saludos
ContraVeneno
28-04-2008, 20:15:48
changos... eso me pasa por contestar "de memoria"... no se que estaba pensando. :confused::confused::confused::confused:
Si todas las opciones son validas, pero para el registro entero (la linea), pero yo necesito para una sola columna.
IF tabla.fieldbyname('negrita').AsBoolean=True then
Begin
DBGrid.Columns[0].Font.Style:=DBGrid.Columns[0].Font.Style+[fsBold];
End;
Me pone todos los registros en la columna 0 en negrita. y yo solo quiero los que cumplan la condición.
Saludos.
Hola de nuevo muli, te pone todos los registros en negrita, por que en tu codigo le dices que te lo ponga toda la columna 0 en negrita. Debes hacerlo en el evento OnDrawColumnCell.
procedure TFListadoAlbFacturas.DBGridDrawColumnCell(
Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (Column.Index = 0) then
begin
if tabla.fieldbyname('negrita').AsBoolean=True then
begin
DBGrid.Canvas.Font.Style := DBGrid.Canvas.Font.Style + [fsBold];
// Pintamos la celda
DBGrid.DefaultDrawColumnCell(rect,DataCol,Column,State);
end;
end;
Saluditos
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.