versiones ventajas software programacion lenguaje historia embarcadero ejemplos desventajas borland delphi delphi-2007

ventajas - Lista de las características del lenguaje Delphi y la versión en la que fueron introducidas/desaprobadas



lenguaje de programacion delphi ventajas y desventajas (3)

El archivo jedi.inc utilizado por el proyecto Dephi JEDI expone una serie de características definidas. Si su proyecto es compatible con MPL, incluso podría usarlo para la detección de características y ahorrarse la molestia de reinventar esa rueda en particular.

Por ejemplo, define SUPPORTS_FOR_IN si el compilador admite enumeradores. Uno podría envolver su código de enumerador en una IFDEF comprobando esa definición en lugar de buscar una versión de compilador particular.

Antes de comenzar, me gustaría señalar que honesta y genuinamente he buscado repetidas veces exhaustivamente a través de Google para tal cosa, y no he podido encontrar ninguna.

Requiero (para un proyecto que estoy desarrollando) una lista de todos los Delphi (2007 a la última versión publicada, ya no soporto ninguna versión anterior a 2007) "Características del idioma", y las versiones en las que se presentaron y ( si corresponde) obsoleto, mejorado o eliminado.

He observado preguntas similares a esto en Desbordamiento de pila antes, aunque la mayoría de ellas se expresaron en forma de "qué función es la mejor" y se cerraron por considerarlas inadecuadas.

Si alguien sabe de esa lista (o tiene suficiente tiempo libre para compilar una), estaría muy agradecido.

La respuesta aceptada contendrá un enlace a dicha lista o a la propia lista.



Tenga en cuenta que esta respuesta solo enumera nuevas funciones de idioma

Aquí están los enlaces al docwiki de RAD Studio:

La lista completa de Embarcadero: ¿Qué hay de nuevo?
Ver también: lista de David I

Para resumir:

Delphi 10.3 (nombre clave Carnival) (por confirmar)

  • Soporte para OSX de 64 bits
  • Tipos anulables

Delphi 10.2 Tokio

Delphi 10.1 Berlín

Delphi 10 Seattle

  • Soporte para Android 5.1.1 e iOS 8.4
  • Mejora en el manejo de excepciones OSX

Delphi XE8

  • Soporte para iOS de 64 bits;
  • Nuevos tipos de enteros: tipos enteros FixedInt , FixedUInt 32 bits en todas las plataformas;
  • Nuevos tipos de enteros dependientes de la plataforma: LongInt , LongWord (64 bits en iOS-64, 32 bits en todas las demás plataformas);

Delphi XE7

Delphi XE6

Delphi XE5

Delphi XE4

En XE4, esto cambió, por lo que $ ENDIF se convirtió en un terminador aceptado para $ IF, $ IFDEF, $ IFNDEF y $ IFOPT.

Delphi XE3

Delphi XE2

Delphi XE

  • La directiva del compilador {$STRINGCHECKS} se ignora en XE;
  • Nuevo valor de 16 bytes para la directiva {$ALIGN} : los valores aceptables para la directiva {$ALIGN} ahora incluyen 1, 2, 4, 8 y 16.
  • nueva directiva {$CODEALIGN} , esta establece la dirección inicial de un procedimiento o función.
  • La directiva {$STRONGLINKTYPES ON}
  • Soporte para expresiones regulares.

Delphi 2010

  • Enhanced Delphi RTTI (Información de tipo de tiempo de ejecución).
  • Attributes
  • El operador as se puede usar para convertir una referencia de interfaz al objeto del que se extrajo.
  • El operador is se puede usar para verificar si se extrajo una referencia de interfaz de una determinada clase.
  • La conversión insegura normal se puede realizar en una interfaz: TObject(SomeInterface) .
  • La nueva directiva delayed indica que una biblioteca externa, como una DLL, no se debe cargar en el momento de la declaración, sino que debe esperar hasta la primera llamada al método.
  • Constructor de clase / Destructor

Delphi 2009

  • La string tipo intrínseca ahora se asigna a UnicodeString ;
  • {$HighCharUnicode on|off} directiva del compilador
  • Generics ;
  • function Default(T): T función intrínseca function Default(T): T (no documentada)
  • Punteros inteligentes ;
  • Métodos anónimos ;
  • Soporte para excepciones anidadas y rastreo de excepciones ;
  • soporte para puntero y una nueva directiva de compilación: {$PointerMath on|off} ;
  • Cuatro nuevas advertencias del compilador:
    • W1057 Implicit string cast from ''%s'' to ''%s'' ,
    • W1058 Implicit string cast with potential data loss from ''%s'' to ''%s'' ,
    • W1059 Explicit string cast from ''%s'' to ''%s'' ,
    • W1060 Explicit string cast with potential data loss from ''%s'' to ''%s'' ;
  • La función Exit puede tomar un parámetro que especifique un resultado;
  • cadenas de resourcestrings como Widestrings;
  • TObject tiene un puntero extra oculto para TMonitor además de su puntero VMT;
  • la palabra clave en deprecated ahora puede tener texto adicional

Delphi 2007

  • No hay cambios de idioma que yo sepa;
    Tenga en cuenta que Delphi 2007 es una versión sin interrupciones, las DCU de D2006 funcionarán sin cambios en D2007 ;
  • (La .NET ''personalidad'' de 2007 introdujo los genéricos )

Delphi 2006

Delphi 2005

  • for ... in loops,
  • palabra clave en inline
  • Se permite comodín en la declaración de usos
  • tipos anidados
  • constantes anidadas
  • {$REGION} / {$ENDREGION} directivas

Delphi 7

  • tres advertencias adicionales del compilador:
    • Unsafe_Type,
    • Unsafe_Code, y
    • Unsafe_Cast. Estas advertencias están deshabilitadas de forma predeterminada, pero se pueden habilitar
  • nueva directiva de compilación {$WARN UNSAFE_CODE ON}
  • Sobrecargas de rutinas que formatean y analizan números, valores de fecha y hora y moneda utilizando una estructura TFormatSettings .

Delphi 6

Delphi 5

Sin nuevas funciones de idioma, pero:

Delphi 4

  • Arrays dinámicos
  • LongWord e Int64 ; Cardinal es un UINT32 (antes era un valor sin signo de 31 bits)
  • Real toma 8 bytes y es lo mismo que el double (anteriormente tenía 6 bytes);
    • Anular con la nueva directiva de compilación {$REALCOMPATIBILITY ON} ;
    • REAL48 reemplaza el viejo real 6 bytes;
  • Soporte para cadenas de resourcestrings
  • Sobrecarga de método
  • Parámetros predeterminados
  • {$EXTERNALSYM} y {$NODEFINE} directivas
  • implements palabra clave para propiedades

Delphi 3

  • Wordbool, longbool y bytebool almacenan false como -1 lugar de 1 (Boolean no se modifica)
  • Los componentes se deben instalar usando packages .
  • Afirmaciones.
  • out parámetros.
  • Widestring
  • interface y dispinterface palabra clave y dispinterface COM ( dispid ).

Delphi 2

  • Soporte para 32 bits;
  • Ansistring reemplaza shortstring como el tipo de cadena predeterminado
  • Currency
  • Variant (para interoperabilidad con automatización OLE).
  • Threading support y la palabra clave ThreadVar .
  • Los datos de 4 bytes son palabras clave packed nuevas de 4 bytes que anulan este comportamiento;
  • TDateTime comienza en 1899/12/30 en D1 comenzó a las 0000/00/00
  • nueva palabra clave de finalization
  • register agregaron las convenciones de register y llamada de llamada stdcall .
  • palabra clave packed