Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Solo una columna del Grid (https://www.clubdelphi.com/foros/showthread.php?t=55829)

muli 28-04-2008 19:02:34

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.

Caro 28-04-2008 19:31:04

Hola muli, para poner en negrita:

Código Delphi [-]
  DBGridRegistros.Canvas.Font.Style := [fsBold];

Saluditos

roman 28-04-2008 19:54:02

Cita:

Empezado por ContraVeneno (Mensaje 283028)
Código Delphi [-]
Control.Font.Bold.Enabled := True;

:confused:




Cita:

Empezado por Caro
Código Delphi [-]
DBGridRegistros.Canvas.Font.Style := [fsBold];

Yo lo haría ligeramente distinto:

Código Delphi [-]
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.
Código Delphi [-]
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.

Código Delphi [-]
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


La franja horaria es GMT +2. Ahora son las 00:28:09.

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