Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=79590)

Victorialerda 19-07-2012 16:34:38

Dbgrid
 
Queremos pintar una fila en un dbgrid con este código:

Código Delphi [-]
private
    { Private declarations }
    UnColor:TColor;

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
const 
  clPaleGreen = TColor($CCFFCC);
  clPaleRed =   TColor($CCCCFF);
begin 
    if Column.Field.Dataset_AGENDA.FieldbyName('HORA').AsInteger < 5
      then 
       if (gdFocused in State) then 
          dbgrid_RECORDATORIOS.canvas.brush.color := clBlack
        else 
           dbgrid_RECORDATORIOS..canvas.brush.color := clPaleGreen;
            dbgrid_RECORDATORIOS..DefaultDrawColumnCell(rect,DataCol,Column,State)
end;

y nos tira error q undelared identifier. 'ibsataset:agenda'. a lo entendido como que no esta identificada y lo declare en el uses y igual me tira el error. ¿alguna solucion para este problema?
gracias.

MartinS 19-07-2012 17:22:24

Hola,
Pregunta tonta, ¿comprobaste los nombres?

ibsataset:agenda tal ves sea IbDataset_Agenda o algo, no se si se puede usar los ":" o quisiste poner ibsataset := Agenda y tambien fijate que si tomas mas o menos los nombres que por defecto usa delphi tal vez el error esta en que debe ser ibdataset y no ibsataset.-

Pone si no en que linea salta el error ya que en el codigo que adjuntaste no veo la linea del problema.-

Saludos.-

Casimiro Notevi 19-07-2012 17:29:47

Victorialerda, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

Recuerda poner los tags al código fuente, ejemplo:



También debes poner títulos descriptivos a tus preguntas, 'dbgrid' no es un título que describa nada.


Gracias :)

Casimiro Notevi 19-07-2012 17:32:39

A simple vista, en estas dos líneas has puesto dos puntos seguidos, debe ser sólamente uno.
Código Delphi [-]
           
dbgrid_RECORDATORIOS..canvas.brush.color := clPaleGreen;             
dbgrid_RECORDATORIOS..DefaultDrawColumnCell(rect,DataCol,Column,State)

ecfisa 19-07-2012 17:54:08

Hola Victorialerda.

Otro detalle que estoy viendo en tu código es:
Código Delphi [-]
  if Column.Field.Dataset_AGENDA.FieldbyName('HORA').AsInteger < 5 then
Y "Dataset_AGENDA.FieldbyName" no es una propiedad o método de Column.


Deberías realizarlo mas o menos de este modo:
Código Delphi [-]
   if TDBGrid(Sender).DataSource.DataSet.FieldByName('HORA').AsInteger < 5 then

Saludos.


La franja horaria es GMT +2. Ahora son las 05:58:38.

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