--- El vie 23-abr-10, Paola Bruccoleri <pbruccoleri en adinet.com.uy> escribi�:
Show quoted text 16 lines
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.