![]() |
Bubble Sort en StringGrid
Tengo que hacer el ordenamiento de un stringgrid con el metodo de la burbuja (Bubble Sort), que segun investigue seria algo como::
Procedure BubleSort(var sort:Array_integer); Var a,s,tmp:integer; Begin For a := 1 to 9 do For s := 0 to 8 do If (sort[s] > sort[s+1]) then Begin tmp:= sort[s]; sort[s] := sort[s+1]; sort[s+1] := tmp; End; End; End; Y mi StringGrid seria::: procedure TConsDpto.FormActivate(Sender: TObject); begin With SG do Begin Rowcount:=L+1; cells[0,0]:='Id'; cells[1,0]:='Departamento'; end; For x:=0 to L do Begin with SG do Begin cells[0,x+1]:=inttostr(Aiddpto[x]); cells[1,x+1]:=ADepartamento[x]; end; Me podrian ayudar para que los datos que van a aparecer en el stringgrid aparezcan ordenados usando ese metodo? Como lo implemento? Gracias |
Parace que estás añadiendo los datos al TStringGrid desde un array; Yo que que haría es ordenar el array (Aiddpto) utilizando el procedimiento de ordenación y luego cuando los añadas al StringGrid ya irán ordenados.
Supongo que quieres hacer la ordenación por la primnera columa que es la integer. Otra cosa, en lugar de OnActivate, utiliza el evento OnShow, ya que onActivate salta cada vez que el form se activa y eso te provocará que cada vez que lo actives intente ordenar. |
Ok, Gracias, intentare hacer eso.
Pude ordenar la primera columna e intente organizar la segunda junto con esta pero no me ha funcionado. Me da un error. If (AIdcargo[s]>AIdcargo[s+1]) then Begin tmp:=AIdCargo[s]; temp:=ACargo[s]; AIdCargo[s]:=AIdcargo[s+1]; ACargo[s]:=ACargo[s+1]; AIdCargo[s+1]:=tmp; ACargo[s+1]:=temp; |
| La franja horaria es GMT +2. Ahora son las 03:30:52. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi