[Lazarus-es] stringgrid, alinear celdas

Jesus Reyes jesusrmx en yahoo.com.mx
Sab Abr 24 05:41:25 CEST 2010



--- El vie 23-abr-10, Paola Bruccoleri <pbruccoleri en adinet.com.uy> escribió:

> De: Paola Bruccoleri <pbruccoleri en adinet.com.uy>
> Asunto: [Lazarus-es] stringgrid, alinear celdas
> A: "Lista Lazarus" <lazarus-es en lists.lazarus.freepascal.org>
> Fecha: viernes, 23 de abril de 2010, 15:44
> Hola a todos..
> 
> si, ya he buscado en google... específicamente este
> ejemplo:
> http://neftali.clubdelphi.com/?p=180
> 
> que he tratado de usar en un stringgrid, pero no me alinea
> la columna que le indico..
> Será que acá en lazarus hay alguna diferencia?
> muchas gracias
> chauuuuuuuuuuuu
> 

La alineación en un stringgrid en lazarus es muy sencillo de hacer, te dejo 2 metodos.

1. Si las columnas del stringgrid son "columnas personalizadas" (ver en el inspector de objetos la propiedad columns y haciendo click en el boton [...] con esto aparece el editor de columnas), a cada columna puedes asignarle alineación independiente, tanto al titulo de la columna como a la columna en si, simplemente seleccionando la columna en el editor de columnas y cambiando las propiedades en el inspector de objetos. Este método requiere 0 lineas de código.

2. El evento OnPrepareCanvas del grid fue creado exáctamente para este tipo de situación. En ese evento puedes hacer lo siguiente:

  procedure TForm1.StringGrid1PrepareCanvas(sender: TObject; aCol, aRow: Integer; aState: TGridDrawState);
  var
    MyTextStyle: TTextStyle;
  begin
    if (Col=2) or (Col=3) then
    begin
      MyTextStyle := StringGrid1.Canvas.TextStyle;
      if Col=2 then
        MyTextStyle.Alignment := taRightJustify 
      else 
      if Col=3 then
        MyTextStyle.Alignment := taCenter;
      StringGrid1.Canvas.TextStyle := MyTextStyle;
    end;
  end;

Este ejemplo fue tomado del wiki: http://wiki.lazarus.freepascal.org/Grids_Reference_Page#Example:_How_to_align_column_text_in_StringGrids

He descargado el ejemplo que mencionas y al convertirlo puedo ver que efectivamente no esta alineando correctamente a parte de que tiene un detalle al importar los datos, mas tarde lo voy a analizar para ver por que sucede esto.

Jesus Reyes A.



      




More information about the Lazarus-es mailing list