String Grid y List Box

Tengo un par de preguntas que espero me puedan responder, es acerca de los string grid y de los list box en delphi o c++ builder.
¿Cómo puedo cambiar el fondo de una celda de un String Grid y también cambiar la alineación del texto? Por ejemplo si lo quiero poner centrado o a la izquierda de la celda; lo mismo de la alineación pero para un Edit.
También tengo duda en como utilizar la propiedad Columns de un List Box, ¿con eso puedo ordenar mis elementos en columnas? Por ejemplo si quiero meter un nombre completo, en una columna alinear todos los nombres y en otra los apellidos.

1 respuesta

Respuesta
1
Tenés que utilizar el evanto drawcell.
En el ejemplo que te mando, cuando la columna está entre la 1 y la 7 (números en mi caso) lo dibuja alineado a la derecha. Y si están en negativo lo dibuja blanco sobre rojo.
Espero que te sirva.
procedure Tfcaja.sg1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if acol in [1..7] then
with (Sender as Tstringgrid).Canvas do
begin
FillRect(Rect);
if (acol=5) and (pos('-',(sender as tstringgrid).Cells[5,arow])>0) then
begin
font.color:=clwhite;
Brush.Color:=clred;//$0057E0E3;
TextOut(Rect.Right-TextWidth((sender as tstringgrid).cells[acol,arow])-3,
Rect.Top+2, (sender as tstringgrid).cells[acol,arow])
end
else
begin
TextOut(Rect.Right-TextWidth((sender as tstringgrid).cells[acol,arow])-3,
Rect.Top+2, (sender as tstringgrid).cells[acol,arow])
end;
end;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas