jueves, 3 de mayo de 2012

Ordenar un StringGrid

En realidad nunca he sido muy adepto a los stringrid, pero cuando me dijieron que necesitaban ordenar uno, no me quedo otra mas que analizarlo y desarrollar el requerimiento...quizas no sea la mejor opcion pero funciona y bien ;)

manos a la obra:

procedure TForm1.OrdenaStringGrid(var GeneraStrGrid: TStringGrid; Columna: Integer);
const
  // Define separador
  ElSeparador = '@';
var
  Contador, I, J, K, Posicion: integer;
  MiLista: TStringList;
  MiCadena, CadenaTemp : string;
begin
  // Obtener Numero de Filas en el StringGrid
  Contador := GeneraStrGrid.RowCount;
  //Crea la lista
  MiLista :=  TStringList.Create;
  MiLista.Sorted := False;
  try
    for I := 1 to (Contador - 1) do
    MiLista.Add(GeneraStrGrid.Rows[I].Strings[Columna] + 
                       ElSeparador +
                       GeneraStrGrid.Rows[I].Text);
    //Ordena la lista
    MiLista.Sort;

    for K := 1 to MiLista.Count do begin
      //toma el string de la linea (K  1)
      MiCadena := MiLista.Strings[(K - 1)];
      //Encuentra la posicion del separador en la cadena
      Posicion := Pos(ElSeparador, MiCadena);
      CadenaTemp := '';
      {Elimina el texto de la columna que estamos ordenando}
      CadenaTemp := Copy(MiCadena, (Posicion + 1), Length(MiCadena));
      MiLista.Stri
ngs[(K - 1)] := '';
      MiLista.Strings[(K - 1)] := CadenaTemp;
    end;

    // copiar datos al stringgrid
    for J := 1 to (Contador - 1) do
    GeneraStrGrid.Rows[J].Text := MiLista.Strings[(J - 1)];
  finally
      //liberamos la lista
      MiLista.Free;
  end;
end;

procedure TForm1.btnOrdenarClick(Sender: TObject);
begin
  // Sort the StringGrid1 on the second Column
  // StringGrid1 nach der 1. Spalte sortieren
  SortStringGrid(StringGrid1, 1);
end;
 
 
Eso era todo...nos vemos pronto!!

Embarcadero Prism XE2...wenisimo!!


Un poco atrasado, pero era informacion que tenia guardada y no habia podido publicar.

En enero de este año, la empresa Embarcadero, sip...la misma encargada de RadStudio, como parte de esta suite libero Embarcadero Prism XE2 (Update 4)...para todos los usuarios rtegistrados en EDN (entre ellos yo)

Los usuarios registrados pueden obtenerlo en  http://edn.embarcadero.com/article/42013

Si no estas registrado puedes descargar el trial y probar Prims por 30 dias en: http://www.embarcadero.com/products/prism


Ahora seguramente estan preguntando ¿pero que realmente es Embarcadero Prism™ XE2?:

Bueno, esta herramienta permite el desarrollo de soluciones flexibles y robustas utilizando Delphi como lenguaje base para .NET, Mono (equivalente a .NET en Linux), ASP.NET (con Mono se puede en forma sencilla utilizarlo en Linux y Win), ademas de acceso a datos lo que nos permite finalmente tener la misma aplicacion trabajando en Windows, Linux y Mac OS X. 

Embarcadero Prism combina sintaxis facil de aprender basada en Pascal, ademas entrega prestaciones que no estan disponibles en otros leguajes .NET permitiendo desarrollar aplicaciones impresionantes.
 


Delphi XE2 y FireMonkey en Windows, Mac y IOs


Cuando aparecio el nuevo Delphi XE2 de Embarcadero muchos quedamos asombrados primero de su desarrollo para multi-plataforma y dentro de esto encontrarnos con FireMonkey. Esto esta recien empezando pero da para mucho.

Si eres curios@ y quieres saber de que se trata el seño Andreano Lanusse preparo una muestra de lo que es posible con esta nueva tecnologia corriendo aplicaciones FireMonkey HD desarrolladas con Delphi XE2 en Windows (32 y 64 bits...awesome!!), Mac y IOs, ademas utilizando componentes 3D con animacion (si, no es broma, aplicaciones 3D...cada vez mas interesante).

Como dije este poyecto esta en pañales pero ya en este momento te ofrece una gran cantidad de opciones y posibilidades...

Depues publicare como trabajar con FireMonkey y acceso a Bases de datos (postgresql, oracle, mysql, sql-server, interbase, firebird...etc, etc) utilizando servidores DataSnap REST que a todo esto he estado utilizando y brilla para mucho...ya cree un servidor de balanceo para datasnap, cuando se encuentre depurado bien tambien lo mostrare...

UN ABRAZO TERRICOLAS...disfruten este video y nos vemos pronto!!!