En este grupo En todos

Foro de Delphi



cambiar color de las lineas que separan las celdas en un dbgrid

jose
Fpii metal-matriceria y moldes buen pa...
Escrito por Jose Martin
el 04/12/2010

Se puede cambiar el color de las lineas separadoras de celdas en un dbgrid, sin cambiar su color de fondo?
he conseguido dibujar lineas por encima, pero al salir de las celdas, esas lineas parpadean
el parpadeo lo he solucionado poniendo lo siguiente:
twincontrol(dbgridcomponentes). DoubleBuffered:=true;
pero al insertar registros, me aparecen en las celdas como sombras negras, alguien sabe como evitar esto?
otra duda mas
como podria saber el numero de registro que contiene cierto valor un campo, sin encontrarme en el, por ejemplo:
numero de registro que contine el valor 'eroski' en el campo 'proveedor' pero sin encontrarme en dicho registro
espero puedan ayudarme
saludos y gracias

Pablo Abel Di Raddo
Programador basic 7.0 instituto super...
Escrito por Pablo Abel Di Raddo
el 05/12/2010

Revisa la propiedad FixedColor!...

Revisa la propiedad BorderStyle!...


Pablo Abel Di Raddo
Programador basic 7.0 instituto super...
Escrito por Pablo Abel Di Raddo
el 05/12/2010

La clave principal de la tabla es autonumerica?...

Una "clave principal", la clave es un campo que se crea automáticamente y que funciona como un "índice" cuya utilidad es imprescindible cuando queramos relacionar distintas tablas.

Saludos.

Jose Martin
Fpii metal-matriceria y moldes buen pa...
Escrito por Jose Martin
el 07/12/2010

Ya solucione todos los problemas
lo de saber el numero de registro sin encontrarme en el no es necesario ya que lo que queria era pintar de un color las lineas separadoras de las celdas de un proveedor y lo he hecho con el siguiente codigo:
if column.Field.DataSet. FieldByName('proveedor'). AsString='BOLLHOFF' then
begin
dbgridcomponentes.Canvas.Pen. Color:=clblack;
dbgridcomponentes.Canvas.Pen. Width:=2;
dbgridcomponentes.canvas.MoveTo(Rect. Right, Rect. Top);
dbgridcomponentes.Canvas.LineTo(Rect. Right, Rect. Bottom);
dbgridcomponentes.Canvas.LineTo(Rect. Left, Rect. Bottom);
dbgridcomponentes.Canvas.LineTo(Rect. Left, Rect. Top);
dbgridcomponentes.Canvas.LineTo(Rect. Right, Rect. Top);
dbgridcomponentes.canvas.brush. Color := rgb(255,246,146);
if gdfocused in state then dbgridcomponentes.Canvas.Font. Color:=clgreen;
end;
para evitar el parpadeo como lo tenia antes sigo usando el doublebuffer:
dbgridcomponentes. Doublebuffer:=true;
y lo de las sombras negras que me crea el doblebuffer lo que solucionado con lo siguiente:
dbgridcomponentes. Editormode:=false;
imagino que habra alguna otra forma de evitarlas pero yo de esta forma e conseguido evitarlas
la verdad de esta forma el dbgrid se ve mas claro
saludos y gracias por todo