Archivo

Entradas Etiquetadas ‘Delphi’

Yo ya tengo el mío…

miércoles, 2 de marzo de 2016 3 comentarios
Share Button

Pues eso, tal y como reza el título, yo ya tengo el mío.  :-DTapa_libro

No hace muchos días, de la mano de Danysoft (partner oficial de Embarcadero en España), se publicó el último libro de Francisco Charte; “Programación de aplicaciones Delphi con acceso a Bases de Datos”.  Pues ayer ya llegó mi copia.

No puedo opiniar todavía en profundidad, pues apenas lo he ojeado por encima, pero la verdad es que tiene una pinta fantástica.

Está centrado en la librería de acceso a datos que viene actualmente con las versiones de delphi, FireDAC y que nos da acceso multiplataforma a  las Bases de Datos más utilizadas en el mercado. Más que las explicaciones que yo pueda dar, os recomiendo que reviséis el índice completo del libro que se puede descargar en PDF desde aquí.

Personalmente me han llamado la atención algunos puntos, pero que supongo que a vosotros os pueden interesar muchos otros de los que se tratan:

  • Aplicaciones con Interbase embebido
  • Bases de Datos en memoria con FireDAC
  • Bases de Datos y Unicode
  • Servicios REST
  • Todo lo refrente a multiplataforma
  • Configuración de FireDAC

Personalmente no he trabajado casi nada con FireDAC (en lo que se refiere a proyectos “en serio”) así que aunque imagino que en su mayor parte se utilizan de forma similar a otras librerías de acceso a datos, siempre está bien tener un punto de referencia para llegar un poco más allá y profundizar un poco.

Si alguien tiene opiniones y comentarios sobre el libro y desea expresarlos, pues sois libres de participar y dar vuestra opinión aquí.

Un saludo y hasta la próxima.

IMG_20160226_174910

IMG_20160226_175022

Share Button
Categories: Bases de Datos, Danysoft, Delphi Tags: ,

Hablando del tiempo… (OpenWeatherMap) 2/2

lunes, 21 de diciembre de 2015 2 comentarios
Share Button

Para complementar la entrada anterior (Hablando del tiempo… (OpenWeatherMap) 1/2)  y “acabarla” me queda publicar el desarrollo móvil correspondiente a la aplicación que vimos anteriormente.
Como ya os comenté en la entrada anterior, el código a utilizar es prácticamente el mismo que hemos utilizado en las aplicaciones para windows (VCL). La mayor diferencia que me he encontrado en el tratamiento de la respuesta JSON que obtenemos del servidor.

Para versiones antiguas de Delphi, podéis utilizar si lo necesitáis la misma librería que ya he recomendado aquí otras veces. Se trata de lkJSON que podéis encontrar en Sourceforge.
En las nuevas versiones de Delphi ya está disponible la unit System.JSON, con lo necesario para no utilizar librerías externas.

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
function TForm1.ParseTiempoCiudadesHist(AObjResp: TlkJSONobject; var ATiempoProxHoras: TTiempoProxHoras): Boolean;
var
  i, j, num, index:integer;
  oHorasList, OWList:TlkJSONlist;
  oHora, oCoord, oMain, oWind, oWeather:TlkJSONobject;
  Str:String;
begin
  // ini
  Result := False;
  // Si no está asignado salimos..
  if not Assigned(AobjResp) then begin
    Exit;
  end;
    // Si hay error no parseamos
    if IsErrorResponse(AObjResp, errCode, ErrMsg) then begin
    Exit;
  end;
 
  // proteccion para el parseo
  try
    // cod. devuelto (datos principales
    ATiempoProxHoras.Cod := errCode;
 
    num := AObjResp.IndexOfName('count');
    if (num <> -1) then begin
      num := GetAsInteger(AObjResp.Field['count'].Value);
    end;
 
    // si no hay ciudades
    if (num = 0) then begin
      MessageDlg('No hay ninguna ciudad que coincida con ese código [nombre,pais].', mtWarning, [mbOK], 0);
      Exit;
    end;
 
    // Lista de horas (Lista)
    TlkJSONBase(oHorasList) := AObjResp.Field['list'];
    // array de elementos
    SetLength(ATiempoProxHoras.TiempoHora, oHorasList.Count);
    // Quedarse con el primier elemento de la lista...
    for i := 0 to (oHorasList.Count - 1) do begin
      // datos de la primera ciudad
      TlkJSONBase(oHora) := oHorasList.Child[i];
      // datos básicos
      ATiempoProxHoras.TiempoHora[i].dt_text := GetAsString(oHora.Field['dt_txt'].Value);
      // convertir fecha-Hora
      Str := ATiempoProxHoras.TiempoHora[i].dt_text;
      ATiempoProxHoras.TiempoHora[i].dt := EncodeDateTime(
        StrToIntdef(Copy(Str, 1, 4), 0),
        StrToIntdef(Copy(Str, 6, 2), 0),
        StrToIntdef(Copy(Str, 9, 2), 0),
        StrToIntdef(Copy(Str, 12, 2), 0),
        StrToIntdef(Copy(Str, 15, 2), 0),
        StrToIntdef(Copy(Str, 18, 2), 0), 0);
 
      // Load Main
      TlkJSONBase(oMain) := oHora.Field['main'];
      ATiempoProxHoras.TiempoHora[i].Main.temp := GetAsFloat(oMain.Field['temp'].Value);
      ATiempoProxHoras.TiempoHora[i].Main.tempmin := GetAsFloat(oMain.Field['temp_min'].Value);
      ATiempoProxHoras.TiempoHora[i].Main.tempmax := GetAsFloat(oMain.Field['temp_max'].Value);
      ATiempoProxHoras.TiempoHora[i].Main.pressure := GetAsFloat(oMain.Field['pressure'].Value);
      ATiempoProxHoras.TiempoHora[i].Main.humidity := GetAsInteger(oMain.Field['humidity'].Value);
 
      // Load weather
      TlkJSONBase(OWList) := oHora.Field['weather'];
      TlkJSONBase(oWeather) := oWList.Child[0];
      ATiempoProxHoras.TiempoHora[i].Weather.id := GetAsInteger(oWeather.Field['id'].Value);
      ATiempoProxHoras.TiempoHora[i].Weather.main := GetAsString(oWeather.Field['main'].Value);
      ATiempoProxHoras.TiempoHora[i].Weather.desc := GetAsString(oWeather.Field['description'].Value);
      ATiempoProxHoras.TiempoHora[i].Weather.icon := GetAsString(oWeather.Field['icon'].Value);
    end;
 
    Result := True;
  except
    // si hay error, FALSe
    Result := False;
  end;
end;

Leer más…

Share Button
Categories: Android, Código, Delphi, iOS, JSON Tags: , , ,

Replay de las sesiones de la DelphiWeek 2015

martes, 7 de abril de 2015 Sin comentarios
Share Button

Si te perdiste las sesiones de la DelphiWeek 2015, ya están disponibles todas las sesiones en esta lista de reproducción de Embarcadero Technologies.

Vale la pena revisarlas, porque algunas son muy interesantes. Hay un poco de todo, de carácter general, técnicas, algunas más “offtopic” y otras referentes a partners y componentes comerciales.

Delphi banner

 

Aquí tenéis una lista completa de las sesiones:

Espero que las encontréis interesantes.

 

Un saludo y hasta la próxima.

Share Button

20 cumpleaños de Delphi!! #DelphiWeek 2015

viernes, 30 de enero de 2015 1 comentario
Share Button

El próximo mes de Febrero se celebra el 20 aniversario de Delphi, concretamente el 14 de Febrero (no haré comentarios cursis sobre temas “románticos”, dado el día  ;-D  ).

Se celebra además a lo grande!

Desde el 9 al 13 de Febrero se celebrará la “#DelphiWeek”. Sesiones online donde se realizarán diferentes eventos; Según la agenda podremos disfrutar de:

  • Entrevistas
  • “Code Battles”. Batallas de código
  • Delphi Games
  • Funside of Delphi
  • Virtual Office Tours
  • Day in the Life survey
  • Global celebration of all things Delphi

Supongo que durante los próximos días iremos conociendo más detalles de los diferentes eventos.

Delphi banner

El anuncio lo ha hecho Jim McKeeth en la “community” de Embarcadero, y ya está disponible el registro para las sesiones (mañana y tarde).

Share Button

Blaise Pascal Magazine en Castellano

viernes, 2 de enero de 2015 Sin comentarios
Share Button

Antes de nada, Feliz Año Nuevo a los que visitáis este Blog. Espero que este año 2015 sea mucho mejor que el anterior.

Quiero empezar este año nuevo con una buena noticia (o al menos a mi me lo parece) y es la que reza en el título de la entrada.

MagazinaNo se si muchos de vosotros conocéis Blaize Pascal Magazine. Se trata de una revista que se publica bajo suscripción ya hace unos años y que trata todos los temas y entornos relacionados con Object Pascal.  Delphi, Lazarus, Oxygene, FreePascal,…

Desde hace un tiempo se está haciendo un esfuerzo (y me consta por la persona que lo lleva) por parte de la revista para poder publicarla de forma asidua es castellano. Prueba de ellos son los primeros números (1, 2 y 3) que corresponden a las publicaciones en inglés (30, 31 y 32) que ya han visto la luz en nuestro idioma. En este sentido os recomiendo leer la Editorial de los números 2 y 3 donde están las líneas maestra de lo que pretenden los editores de la revista.

Todas ellas se han publicado completas en castellano de forma gratuita.

Para descargarlas podéis ir a la sección en castellano de la página.

Creo que es una buena noticia para la comunidad hispana de Delphi. No son muchas las publicaciones y libros de los que disponemos en nuestro idioma y el hecho de que se amplíe ese abanico siempre es bueno.

Veremos si la gente se anima y el proyecto sigue adelante.

Un saludo y hasta la próxima.

Share Button

Grupo Delphi Solidario facebook (888)

martes, 18 de noviembre de 2014 2 comentarios
Share Button

descarga (1)Desde aquí mi enhorabuena al grupo de facebook, Delphi Solidario.

Originalmente empezó como un proyecto personal de Salvador Jover (Delphi Basico), pero ha transcendido de una iniciativa puntual a ser un referente para muchos usuarios. En concreto para 888 que actualmente son los miembros con los que cuenta.

Creo que esa cifra merece este referencia.  ;-)

descarga

Un saludo.

NOTA: Acabo de dejar la entrada anticuada, pues al finalizarla acabo de dar de alta al usuario 889.

Share Button
Categories: Delphi, Offtopic Tags: , , ,

Mando a distancia; Tethering con Delphi XE7

viernes, 17 de octubre de 2014 32 comentarios
Share Button

El tema de Tethering, del que ya he hablado antes en el blog (Tethering, operaciones básicas), se incorporó a la versión XE6 de RAD Studio. Hasta ese momento podíamos utilizar esta característica para conectar aplicaciones y dispositivos utilizando Wifi.

blueT_WifiPara esta nueva versión XE7 se a añadido la posibilidad de conexión mediante Bluetooth.
Además, a las características ya existentes de conexión wifi, se han añadido opciones para poder filtrar o discriminar los dispositivos a los que nos vamos a conectar a partir de máscaras para la IP o para la subred.

Como ya he comentado anteriormente, el Tethering es una característica que podemos utilizar (aunque se haya introducido en las últimas versiones de Delphi) no sólo en aplicaciones FireMonkey (tanto móviles como de escritorio) sino también, en aplicaciones ”antiguas” diseñadas con la VCL.

INTRODUCCIÓN

La idea de esta entrada es repasar más ampliamente en las características de Tethering, de las que ya hablé anteriormente, y profundizar en las posibilidades de esta tecnología, utilizando un proyecto más complejo y completo que el que vimos en la introducción.

Para ello utilizaremos 2 aplicaciones diferentes. Una basada en la VCL y otra desarrollada con Firemonkey para dispositivos móviles.

Reproductor y Mando

Leer más…

Share Button
Categories: Delphi, Tethering, XE7 Tags: , ,

Yo ya tengo el mio… ;-)

jueves, 2 de octubre de 2014 9 comentarios
Share Button

Hace unos días en la presentación en Barcelona del nuevo XE7 ya pudimos ver algunos ejemplares recién salidos de la imprenta, aun cuando todavía no se había realizado el anuncio oficial por parte de Danysoft.
A los pocos días ya estaba disponible para su compra.

Me refiero, como no, al nuevo libro de Francisco Charte sobre Delphi y del que además podemos disponer en castellano: “Desarrollo de aplicaciones iOS y Android con Delphi”.

descarga

Pues tal y como reza el título, yo ya tengo el mío!   ;-)

Personalmente creo que es un libro/manual indispensable para todos aquellos que empiecen a trabajar con alguna de las últimas versiones de Delphi y estén pensando en introducirse en el mundo del desarrollo móvil.

En los últimos años y con la publicación de las últimas versiones de Delphi (RADStudio), una de las grandes “solicitudes” que hemos hecho a embarcadero desde la comunidad de usuarios es que mejoren la documentación.

Las cosas cambian, antiguamente teníamos la ayuda (F1) y el manual que venía con el producto. Actualmente seguimos teniendo la ayuda (F1), pero también muchas otras fuentes de información “nuevas”; Tenemos la DocWiki, los canales de EmbarcaderoTech en youtube, bastantes Blogs de MVP donde se publican ejemplos y vídeos, los repositorios de código, facebook, twitter,… pero muchos de nosotros seguimos echando en falta un manual. Si, un manual de los de “papel”; De esos que puedes ojear y leer tranquilamente cuando te sientas un rato (sin un ordenador delante).

Este manual viene a cubrir justo ese hueco y por eso creo que es un complemento perfecto a toda la información que nos aporta la web.
No me voy a extender en el contenido, ya que la mejor manera de conocerlo es consultar el índice, aunque en general me parece bastante acertado.

Os dejo el link de la página de Danysoft, distribuidor oficial en la península de Embarcadero y los responsables de que podamos disponer de este libro en castellano (recalco esto, porque me parece un lujo). Ahí podéis leer, como he dicho, el índice completo de contenidos, leer la descripción completa y solicitarlo/comprarlo entre otras cosas.

Os adjunto un par de fotos, tal cual me llegó ayer. Reconozco que todavía no lo he empezado a leerlo, sólo “ojeado”, aunque la firma de Charte ya es una garantía.

2014-10-01 20.56.322014-10-01 20.50.51

Un saludo y hasta la próxima.

Share Button

Obtener información de una canción

martes, 13 de mayo de 2014 2 comentarios
Share Button

images (2)El tema de esta entrada ha surgido a partir de la necesidad de obtener esta información de una canción, para un programa  que en breve os presentaré en otra entrada del blog.
Esta parte no tiene que ver directamente con el tema de esa entrada, pero sí me ha parecido interesante y tal vez útil para otras personas, así que me he decidido a publicar estas líneas al respecto, ya que en la otra no tiene cabida.

El problema es sencillo; A partir de los datos básicos de un tema musical (título y/o artista) necesito obtener algo de información de esa canción. En mi caso me interesaba el título del álbum y una caratula (aunque se puede obtener más).

Hay varios servicios en Internet que os ofrecen la posibilidad de acceder a esta información.

http://www.lastfm.es/api

http://www.freecovers.net/api/

https://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html

images (3) En esta ocasión me he decantado por iTunes, por la facilidad de uso y porque no hace falta registrarse. Hay algunos otros cuya utilización es gratuita, pero requieren un registro y el uso de una APIKey. En este caso, por simple sencillez, me he decantado por este. Además, ya me ofrece (con creces) los datos que para este ejemplo estaba buscando.

En esta página podeís acceder a la información de la API para realizar búsquedas en iTunes.

Como podéis ver es bastante sencilla de utilizar.

Leer más…

Share Button
Categories: Aplicación, Delphi, Threads Tags: , , ,

Tethering; Operaciones básicas…

miércoles, 23 de abril de 2014 12 comentarios
Share Button

images Una de las características más atractivas de la nueva versión de RAD Studio, y sobre la que seguro continuaremos hablando, pues están previstas ampliaciones y mejoras para las próximas versiones, es el AppThthering. Antes de continuar con el artículo, os dejo unos links por si queréis revisar documentación sobre esta característica. Si ya lo habéis revisado, pues podéis continuar con la introducción.

Lo primero a revisar es la DocWiki de Embarcadero. Con esta información ya podemos iniciar. No es que sea muy extensa, pero está la suficiente y básica del funcionamiento.

También podéis revisar la entrada anterior que publiqué en el blog, en la que os mostré algunas preguntas y respuestas que aparecieron en la presentación de embarcadero sobre características del nuevo RAD Studio. Hay un bloque dedicado a AppTethtering bastante clarificador.

Añadir un par de videos que se pueden encontrar en el canal de embarcadero:

Por último, os remito a algunas entradas de los blogs de embarcadero, como la de Sarina DuPond titulada “Extend your Windows apps to mobile with Tethering in XE6”,  o esta publicada en Fixed by Code titulada “Fun with Delphi XE6 App tethering and barcodes”.

 

INTRODUCCIÓN

Si a estas alturas no ha quedado claro (con todo lo anterior) qué es y para qué se usa el Tethering, sólo queda citar el siguiente párrafo (traducido):

Usando Tethering sus aplicaciones pueden fácilmente:

  • Descubrir otras aplicaciones que estén usando Tethering y ejecutándose en el mismo dispositivo o de otros dispositivos que estén conectados a la red (interna).
  • Ejecutar acciones de forma remota. Una aplicación puede “publicar” acciones, de forma que las otras aplicaciones puedan invocarlas/llamarlas de forma remota.
  • Compartir datos entre aplicaciones. El Tethering permite intercambiar tipos de Datos estándar y streams.

El tethering no depende de un protocolo específico de transporte de datos, de forma que se pueden implementar nuevos protocolos utilizando la API de tethering. La RTL proporciona soporte para conexiones ethernet que se ejecutan en la misma red local (LAN), incluso si se están ejecutando en el mismo dispositivo.

Hay que decir que el tethering, aunque puede ser muy útil en determinados escenarios, tiene un funcionamiento bastante básico desde el punto de vista del programador. Toda la gestión la realizamos utilizando 2 componentes (iguales para todas las aplicaciones que lo utilizan).

TTetheringManager

Este componente es el que está más enfocado a las conexiones entre dispositivos.

TTetheringAppProfile

Es el componente que está más enfocado al intercambio de Datos. Es el que se utiliza para “publicar” acciones que posteriormente se van a compartir entre aplicaciones o para enviar y recibir recursos.

  Leer más…

Share Button
Categories: Delphi, FMX, Tethering, VCL, XE6 Tags: , ,