PDA

Ver la Versión Completa : Solo una columna del Grid


muli
28-04-2008, 19:02:34
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.

Caro
28-04-2008, 19:31:04
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:

muli
29-04-2008, 12:36:14
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.

Caro
29-04-2008, 13:24:53
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