PDA

Ver la Versión Completa : Ver texto en una stringrid coloreada


richi
29-03-2007, 19:37:43
El caso es que tengo un procedimiento que llamo desde destintas zonas del programa para colorear la stringgrid; el problema viene cuando tengo texto introducido en donde e coloreado no me lo muestra. El procedimiento que utilizo es el siguiente:

procedure form.pintarStringGrid(color : TColor; fila,desde,hasta : integer);
var
i : integer;
begin
stringGridPEriodo.Enabled := false;
StringGridPeriodo.Canvas.brush.Color := color;

for i:= desde to hasta do
begin
StringGridPeriodo.Canvas.FillRect(StringGridPeriodo.CellRect(i,fila));
end;
stringGridPEriodo.Enabled := true;
end;

Al procedimiento le paso el color la fila y en esa fila desde donde hasta donde pintar.
Gracias.

Bicho
29-03-2007, 20:06:28
Hola,

no se que tal eso de hacer en un procedimiento aparte, pero yo creo que lo suyo para éste caso, sería poner ese codigo en el evento OnDrawCell del StringGrid.
O quizá podrías probar a hacer un repintado al final del procedimiento que has creado para forzar que se refresque el StringGrid.
Son dos alternativas que quizá te puedan servir.

Saludos

droguerman
30-03-2007, 02:06:19
El caso es que tengo un procedimiento que llamo desde destintas zonas del programa para colorear la stringgrid; el problema viene cuando tengo texto introducido en donde e coloreado no me lo muestra. El procedimiento que utilizo es el siguiente:
Código Delphi [-] (http://www.clubdelphi.com/foros/#)procedure form.pintarStringGrid(color : TColor; fila,desde,hasta : integer); var i : integer; begin stringGridPEriodo.Enabled := false; StringGridPeriodo.Canvas.brush.Color := color; for i:= desde to hasta do begin StringGridPeriodo.Canvas.FillRect(StringGridPeriodo.CellRect(i,fila)); end; stringGridPEriodo.Enabled := true; end;

Al procedimiento le paso el color la fila y en esa fila desde donde hasta donde pintar.
Gracias.
haces fillRect y pintas todo de nuevo (incluido el texto) te falta añadir un TextRect o un DrawText para escribir otra vez el texto de la celda

richi
02-04-2007, 12:20:05
Gracias por responder a los dos. Lo solocione con la respuesta de droguerman con un TextRect.