Ver Mensaje Individual
  #4  
Antiguo 10-09-2006
rusadir rusadir is offline
Miembro
 
Registrado: sep 2006
Posts: 13
Reputación: 0
rusadir Va por buen camino
flechitas de ordenación en stringgrid

Como complemento a tu ordenacion de un stringgrid que me ha sido muy util he puesto un procedure para que pinte los triangulitos de ordenacion es muy chapucero pero soy muy novato pero me valio os lo pongo por si os vale,

Código Delphi [-]
 
procedure marcaordgrid(Grid : TStringGrid; col:integer);
var
i,j,a,b: Integer;
triangulo:tbitmap;
begin
grid.Refresh;
triangulo:=tbitmap.Create;
i:=(col*(grid.DefaultColWidth))+(grid.DefaultColWidth div 2);
j:=(grid.DefaultRowHeight div 2);
grid.Canvas.MoveTo(i,j);
grid.Canvas.LineTo(i+5,j-5);
grid.Canvas.LineTo(i-5,j-5);
grid.Canvas.LineTo(i,j);
end;

luego se llama desde el



Código Delphi [-]
procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
c : Integer;
begin
edit2.Text:=inttostr(x);
edit3.Text:=inttostr(y);
with TStringGrid(Sender)
do begin
if Y <= RowHeights[0]
then begin
C:= x div (DefaultColWidth+GridLineWidth);
SortGrid(TStringGrid(Sender),C);
marcaordGrid(TStringGrid(Sender),C);
end;
end;
end;



otra cosa que he visto es que al utilizar para determinar la columna el
DefaultColWidth+GridLineWidth
si las columnas son de distinto largo no valdria este algorismo ni pa
ordenar ni pa pintar el triangulito lo digo por si alguien se le ocurre algo
pa esto y ya lo dejamos maqueado

Última edición por Neftali [Germán.Estévez] fecha: 12-09-2006 a las 11:13:43.
Responder Con Cita