Ir al contenido


Foto

Ayuda para pintar la fila de UniDBGrid1


  • Por favor identifícate para responder
4 respuestas en este tema

#1 noel78

noel78

    Member

  • Miembros
  • PipPip
  • 15 mensajes

Escrito 23 junio 2012 - 11:21

Saludos...
Estoy probando Unigui y quiero saber si se puede pintar la fila de del UniDBGrid1

e visto el siguiente codigo en los ejemplos pero no hallo la manera de poder pintar la fila



delphi
  1. procedure TMainForm.UniDBGrid1DrawColumnCell(Sender: TObject; ACol,
  2.   ARow: Integer; Column: TUniDBGridColumn; Attribs: TUniCellAttribs);
  3. begin
  4.   if ACol=0 then
  5.   begin
  6.     Attribs.Color:=$E0E0E0;
  7.     Attribs.Font.Style:=[fsBold];
  8.   end;
  9.  
  10.   if Column.FieldName='UnitPrice' then
  11.   begin
  12.     if Column.Field.AsFloat>100 then
  13.     begin
  14.       Attribs.Font.Color:=clMaroon;
  15.       Attribs.Font.Style:=[fsBold, fsItalic];
  16.     end;
  17.   end
  18.   else if Column.FieldName='Quantity' then
  19.   begin
  20.     if Column.Field.AsInteger<200 then
  21.     begin
  22.       Attribs.Font.Color:=clRed;
  23.       Attribs.Font.Style:=[fsBold];
  24.       Attribs.Color:=$F0F0FF;
  25.     end;
  26.   end;
  27. end;
  28.  
  29. saludos y gracias de antemano




  • 0

#2 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 mensajes
  • LocationOaxaca, México

Escrito 23 junio 2012 - 07:46

Hola, prueba intentando en ese mismo evento (UniDBGrid1DrawColumnCell) solo con:



delphi
  1. if Arow = 3 then    //<-- Fila que se pintará
  2.   Attribs.Color:=clLtGray;



Saludos
  • 0

#3 noel78

noel78

    Member

  • Miembros
  • PipPip
  • 15 mensajes

Escrito 24 junio 2012 - 08:41

Gracias freddycc por responder.
Bueno el codigo que pusiste funciona perfectamente. Pero yo necesito que me pinte la fila completa si por ejemplo el campo SEXO=hombre me pinte toda la fila

Ejemplo:


delphi
  1. if Column.FieldName='SEXO' then
  2.         begin
  3.         if Column.Field.AsString ='HOMBRE' then
  4.         Attribs.Color:=clLtGray;
  5.         end;
  6. //Con este codigo logro que me pinte solo la celda y no hallo manera de q pinte toda la fila
  7. //saludos y gracias de antemano



Aprovecho para pedirte el favor y muevas este hilo a la seccion de UNIGUI. saludos
  • 0

#4 cadetill

cadetill

    Advanced Member

  • Moderadores
  • PipPipPip
  • 994 mensajes
  • LocationEspaña

Escrito 24 junio 2012 - 10:49

Buenas,

Entonces lo que tienes que hacer es preguntar al DataSet, no a la columna, es decir, algo así



delphi
  1. if DBGrid1.DataSource.DataSet.FieldByName('sexo').AsString = 'HOMBRE' then Attribs.Color:=clLtGray;



Espero te sirva

Nos leemos

  • 0

#5 noel78

noel78

    Member

  • Miembros
  • PipPip
  • 15 mensajes

Escrito 24 junio 2012 - 01:15

Si funciona perfecto Gracias......
  • 0




IP.Board spam blocked by CleanTalk.