Ver Mensaje Individual
  #3  
Antiguo 23-01-2005
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Reputación: 21
salvica Va por buen camino
Talking

De entrada tienes que usar divisiones enteras (div), luegos debes pensar que el TRect del grid contienes posiones respecto al origen del mismo

Código Delphi [-]
 var
  Txt: String;
   LonTexto: integer;
   AnchoCelda : integer;
   MargenTexto : integer;
 begin
  Txt := StringGrid1.Cells[ACol,Arow];
  If ACol = 0 then
    StringGrid1.Canvas.TextRect(Rect,Rect.Left+3,Rect.Top,Txt)
  else
    begin
      LonTexto := Canvas.TextWidth(Txt);
      AnchoCelda := Rect.Right - Rect.Left;
      MargenTexto := (AnchoCelda-LonTexto) div 2;
      StringGrid1.Canvas.TextRect(Rect, MargenTexto, Rect.Top, Txt);
    end;
end;

nota: como no tengo el delphi a mano, no recuerdo si el valor que se pasa en segundo lugar es la posición de inicio dentro de la celda o el tamaño del texto a dibujar, pero por ahi van los tiros
Saludos, salvica
Responder Con Cita