Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Noticias (https://www.clubdelphi.com/foros/forumdisplay.php?f=34)
-   -   Delphi 10.3 Rio Liberado! (https://www.clubdelphi.com/foros/showthread.php?t=93581)

el-mono 21-11-2018 18:15:19

Delphi 10.3 Rio Liberado!
 
Aqui les comparto un enlace con la info:

https://www.embarcadero.com/products/delphi

Edito para agregar video presentacion:

https://www.youtube.com/watch?v=RreUFdxaR20

dec 21-11-2018 18:37:55

Hola a todos,

Gracias por publicar aquí la noticia el-mono. :)

Neftali [Germán.Estévez] 22-11-2018 10:12:57



Listado resumido con las novedades
https://www.embarcadero.com/products...ew-in-10-3-rio

Listado más detallado de novedades
http://docwiki.embarcadero.com/RADSt...n/What%27s_New

Listado detallado de bugs corregidos
http://docwiki.embarcadero.com/RADSt...AD_Studio_10.3

Y algunas notas más de la Release.
http://docwiki.embarcadero.com/RADSt.../Release_Notes

movorack 22-11-2018 14:48:21


gatosoft 23-11-2018 16:10:14

¿Y.... algún comentario sobre este realease?

Además del trabajo de corrección de multiples BUGs, creo que tiene temas interesantes que hacen que valga la pena actualizarse, principalmente para quienes estan trabajando para las apps store (google, apple, windows), pues se pone al dia con las actualizaciones mandatorias que cada tienda comenzó a exigir este año. ==> claro está, cada quien revisará su costo / beneficio.

Como se habia anunciado, veo que se están enfilando baterias para crecer en el mercado de apps a través de FMX, DataSnap REST y RAD Server, pero no baja la guardia con Windows, pues como ellos mismos mencionan es el rey en cuanto a sistemas operativos mas utilizados.

De la misma forma, veo que no estan preparando la VCL para morir y ser reemplazada por FMX como alguna vez crei que pasaria.

Personalmente me gusta el cambio de la "declaración de variables inline" y la inferencia de tipos en esta declaración, pero hay que verla en acción para poder dar un veredicto ==> Imagino a Al Gonzalez a la espera de que su propuesta de mejorar el WITH sea acogida.
:D:D


Ya descargué la versión y espero tener tiempo para probarla ...

Saludos,

movorack 23-11-2018 17:17:51

En la nueva versión ¿que sucedería en el caso a continuación?

Código Delphi [-]
unit Unit1;

interface

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    StrVar: string;
    { Public declarations }
  end;

var
  Form2: TForm2;
  StrVar: string;

implementation

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
  Self.StrVar := 'A';
  Unit1.StrVar := 'B';
end;

procedure TForm2.Button1Click(Sender: TObject);
var
  StrVar: string;
begin
  ShowMessage(Self.StrVar); //A
  ShowMessage(Unit1.StrVar); //B

  StrVar := 'C';
  ShowMessage(StrVar); //C

  var StrVar: string := 'D'; // ¿Genera exepción?
  ShowMessage(StrVar); //D?
end;

end.

¿Y porque alguien declararía la variable nuevamente? ¡No se! ¿Código espagueti como en PHP?

dec 23-11-2018 19:20:37

Hola a todos,

Cita:

Empezado por gatosoft (Mensaje 529675)
¿Y.... algún comentario sobre este realease?

Además del trabajo de corrección de multiples BUGs, creo que tiene temas interesantes que hacen que valga la pena actualizarse, principalmente para quienes estan trabajando para las apps store (google, apple, windows), pues se pone al dia con las actualizaciones mandatorias que cada tienda comenzó a exigir este año. ==> claro está, cada quien revisará su costo / beneficio.

Como se habia anunciado, veo que se están enfilando baterias para crecer en el mercado de apps a través de FMX, DataSnap REST y RAD Server, pero no baja la guardia con Windows, pues como ellos mismos mencionan es el rey en cuanto a sistemas operativos mas utilizados.

De la misma forma, veo que no estan preparando la VCL para morir y ser reemplazada por FMX como alguna vez crei que pasaria.

Personalmente me gusta el cambio de la "declaración de variables inline" y la inferencia de tipos en esta declaración, pero hay que verla en acción para poder dar un veredicto ==> Imagino a Al Gonzalez a la espera de que su propuesta de mejorar el WITH sea acogida.
:D:D


Ya descargué la versión y espero tener tiempo para probarla ...

Saludos,

Si no me equivoco, lo que NO trae esta nueva versión, es el soporte para Mac OS 64 bit. Me parece que será una seguiente versión de Delphi la que incluya soporte para esto. Es más o menos "fundamental", puesto que Mac OS "se queja" si se trata de correr una app de 32 bits... pidiéndole al usuario que contacte con el desarrollador, para que le proporcione una copia "actualizada" de su app...

Ojo, creo que esto es así: con suerte alguien me corrije...

dec 23-11-2018 19:23:48

Hola a todos,

Cita:

Empezado por movorack (Mensaje 529676)
En la nueva versión ¿que sucedería en el caso a continuación?

Código Delphi [-]
unit Unit1;

interface

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    StrVar: string;
    { Public declarations }
  end;

var
  Form2: TForm2;
  StrVar: string;

implementation

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
  Self.StrVar := 'A';
  Unit1.StrVar := 'B';
end;

procedure TForm2.Button1Click(Sender: TObject);
var
  StrVar: string;
begin
  ShowMessage(Self.StrVar); //A
  ShowMessage(Unit1.StrVar); //B

  StrVar := 'C';
  ShowMessage(StrVar); //C

  var StrVar: string := 'D'; // ¿Genera exepción?
  ShowMessage(StrVar); //D?
end;

end.

¿Y porque alguien declararía la variable nuevamente? ¡No se! ¿Código espagueti como en PHP?

Si he entendido bien este apartado de la lista de novedades, se trata de poder declarar variables "en línea", es decir, no necesitando hacerlo a nivel de la función/procedimiento/método. Esto está ligado a que dichas variables pueden ser ahora visibles únicamente en un determinado "bloque de código", dentro de dicha función/procedimiento/método, y, no fuera del mismo. Esto digo puede ya tener su utilidad... y acaso tenga alguna otra utilidad que a mí se me escape.

gatosoft 23-11-2018 21:54:34

Cita:

Empezado por dec (Mensaje 529677)
Hola a todos,



Si no me equivoco, lo que NO trae esta nueva versión, es el soporte para Mac OS 64 bit. Me parece que será una seguiente versión de Delphi la que incluya soporte para esto. Es más o menos "fundamental", puesto que Mac OS "se queja" si se trata de correr una app de 32 bits... pidiéndole al usuario que contacte con el desarrollador, para que le proporcione una copia "actualizada" de su app...

Ojo, creo que esto es así: con suerte alguien me corrije...

Asi es, el soporte para Mac OS 64x es un hecho, ya está en camnio y será liberado en próximas versiones, de acuerdo a lo que comentaba rizzato en uno de estos videos de lanzamiento.

TOPX 23-11-2018 21:55:05

Cita:

Empezado por movorack (Mensaje 529676)
En la nueva versión ¿que sucedería en el caso a continuación?

Pues, no compila, porque:

[dcc32 Error] Unit1.pas(39): E2004 Identifier redeclared: 'StrVar'


-

movorack 23-11-2018 22:27:46

Muchísimas gracias por haberte tomado el tiempo. Con esta respuesta tengo mas claridad al respecto

DarkDudae 30-11-2018 10:21:14

¿Sabéis si la Community Edition también ha sido actualizada con las novedades de Rio ?

Neftali [Germán.Estévez] 30-11-2018 14:11:08

La "Community Edition" no es más que una edición más (como son la profesional, Architect,...) dentro de cada versión del programa.
Por lo tanto, debería estar actualizada como el resto. No se concibe que la 10.3 salga como Architect, pero no como profesional.

De todas formas, para confirmarlo, si realizas el download, verás que el archivo que te propone para descargar es este:


Ñuño Martínez 30-11-2018 18:06:15

Yo todavía tengo pendiente probar al edición Community. Me quedé con la anterior cosa gratis que hicieron, que no iba mal pero tenía un no sé qué que qué sé yo que no me terminaba de convencer.

Eso de las variables "inline", no sé. Como sea igual que C99, que puedes declarar en cualquier parte, me parece un patinazo. Eso de tener las variables locales bien juntitas es lo mejor que puede hacerse para poder encontrarlas en caso de ser necesario. Lo de que pueda declararse en el FOR (como he visto propuesto en los foros de Lazarus, no sé si también en Delphi) no lo veo tan mal, fuera parte que las variables usadas en esos bucles siempre se han tratado de una forma especial.

Neftali [Germán.Estévez] 08-12-2018 23:29:22

Cita:

Empezado por Ñuño Martínez (Mensaje 529832)
...Eso de tener las variables locales bien juntitas es lo mejor que puede hacerse para poder encontrarlas en caso de ser necesario.


Estoy de acuerdo, pero al final todo se reduce a lo ordenado que sea cada cual.

Casimiro Notevi 09-12-2018 01:24:34

Yo declaro las variables al principio, aunque el lenguaje que utilice en ese momento lo permita en cualquier sitio.

Ñuño Martínez 09-12-2018 13:00:04

Cuando hacía cosas en BASIC (hace mucho que no me pongo en serio con él... ¡Qué morriña!) no lo hacía al principio, pero aprendí la costumbre de Tim Hartnell de tener una "rutina" de iniciación al final del código (línea 10000, por ejemplo) que llamaba con un GOSUB 10000 al empezar. Ahí se inicializaban las variables con sus valores iniciales y sus REM explicando un poquito para qué servía, y así no tenía que andar siguiendo el código para ver dónde ponía ese valor o cuál se usaba.

Y ahora hago como tú, Casimiro, aunque el lenguaje lo permita en cualquier parte, siempre lo hago al principio.

cocute 14-12-2018 09:28:40

me ha costado encontrar el sitio donde meter el path de las carpetas de librerias
vamos el tools>options>Enviroment options>Delphi options>Library

ahora es en

tools>options>Language>Delphi options>Library

gatosoft 14-12-2018 14:32:18

Cita:

Empezado por cocute (Mensaje 529984)
me ha costado encontrar el sitio donde meter el path de las carpetas de librerias
vamos el tools>options>Enviroment options>Delphi options>Library

ahora es en

tools>options>Language>Delphi options>Library

La versión trae una casilla para buscar opciones, (de hecho, el Object insperctor también)... yo tuve que entrar por alli para buscar la opción Library

gatosoft 14-12-2018 14:35:50

Cita:

Empezado por Casimiro Notevi (Mensaje 529852)
Yo declaro las variables al principio, aunque el lenguaje que utilice en ese momento lo permita en cualquier sitio.

Creo que es cuestión de costumbre y encontrarle la utilidad, y apoyo a Neftalí... "se reduce a lo ordenado que seas"

Personalmente le he visto la utilidad, para "limpiar un poco el código" en la sección de variables e irlas declarando donde vayan apareciendo... Se que no suena muy bien, pero a medida que lo vayamos ensayando, le iremos viendo utilidad. El tiempo dirá

Al González 17-12-2018 02:24:30

Cita:

Empezado por gatosoft (Mensaje 529675)
[...]Imagino a Al Gonzalez a la espera de que su propuesta de mejorar el WITH sea acogida[...]

Con las variables in-line, nos encaminamos a una políticamente sana extinción del With:

Código Delphi [-]
  // ...
  Var OKButton := GetMySpecialForm.FindComponent ('btnOK');

  If OKButton <> Nil Then
  Begin
    TButton (OKButton).Click;
    OKButton.Enabled := System.False;
  End;
End;

En todo caso, podríamos incluir una nueva palabra reservada de uso similar (pero seguro) al del With, como por ejemplo Using:

Código Delphi [-]
  // ...
  Using GetMySpecialForm.FindComponent ('btnOK') Do
    If It <> Nil Then  // "It", variable implícita y de uso obligado dentro del bloque Using.
    Begin
      TButton (It).Click;
      It.Enabled := System.False;
    End;
End;

Un abrazo propuesto. :)

Al González.

gatosoft 17-12-2018 13:47:55

Cita:

Empezado por Al González (Mensaje 530005)
Con las variables in-line, nos encaminamos a una políticamente sana extinción del With:

Código Delphi [-]
  // ...
  Var OKButton := GetMySpecialForm.FindComponent ('btnOK');

  If OKButton <> Nil Then
  Begin
    TButton (OKButton).Click;
    OKButton.Enabled := System.False;
  End;
End;

En todo caso, podríamos incluir una nueva palabra reservada de uso similar (pero seguro) al del With, como por ejemplo Using:

Código Delphi [-]
  // ...
  Using GetMySpecialForm.FindComponent ('btnOK') Do
    If It <> Nil Then  // "It", variable implícita y de uso obligado dentro del bloque Using.
    Begin
      TButton (It).Click;
      It.Enabled := System.False;
    End;
End;

Un abrazo propuesto. :)

Al González.

De acuerdo con esta, una variante mejorada (creo yo) al "Ditto mark" que proponias en otros foros...

Ñuño Martínez 19-12-2018 14:01:33

Con esto de las variables in-line y el WIDTH me estoy acordando de algo que acabo de descubrir (bueno, hace un par de semanas tal vez): la palabra clave "ABSOLUTE", la cual permite declarar una variable que comparte espacio físico con otra. Por no conocerla antes he tenido que hacer malabares con Allegro.pas con algunas cosas; sobre todo porque Allegro, al ser de bastante bajo nivel, tiende a usar los mismos datos de formas diferentes según lo que esté haciendo.

No sé desde qué versión existe, tengo que investigarlo, pero como parece funcionar exactamente igual tanto en Delphi como en Free Pascal me va a solucionar la vida en alguna cosa. Sólo espero que lleve en el lenguaje desde hace tiempo por lo de la retrocompatibilidad y tal.

Casimiro Notevi 19-12-2018 14:12:08

Cita:

Empezado por Ñuño Martínez (Mensaje 530042)
la palabra clave "ABSOLUTE", la cual permite declarar una variable que comparte espacio físico con otra.

¿Un puntero a la misma?

darkerbyte 19-12-2018 21:42:46

Comunity Edition
 
Hola.

¿Alguien sabe si la version comunity permite hacer Apps? ¿o viene muy limitada?

Vi que solo hasta la licencia Enterprise permite el desarollo de Apps con conexión a BD. Pero creo que mi presupuesto solo llega a la versión Profesional :(
¿Hay manera de hacerlo en la versión profesional? ¿quizá con componentes de terceros?

Gracias y ¡Te deseo un año 2019 de muchos éxitos!

Neftali [Germán.Estévez] 19-12-2018 22:23:30

Cita:

Empezado por darkerbyte (Mensaje 530062)
¿Alguien sabe si la version comunity permite hacer Apps? ¿o viene muy limitada?
Vi que solo hasta la licencia Enterprise permite el desarollo de Apps con conexión a BD. Pero creo que mi presupuesto solo llega a la versión Profesional :(
¿Hay manera de hacerlo en la versión profesional? ¿quizá con componentes de terceros?
Gracias y ¡Te deseo un año 2019 de muchos éxitos!


Creo que este hilo, especial de la versión community, te puede aclarar muchas cosas.

darkerbyte 19-12-2018 23:06:48

Agradecimiento
 
Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 530063)
Creo que este hilo, especial de la versión community, te puede aclarar muchas cosas.

Muchas gracias. Dudas despejadas

Al González 20-12-2018 00:20:54

Cita:

Empezado por Ñuño Martínez (Mensaje 530042)
Con esto de las variables in-line y el WIDTH me estoy acordando de algo que acabo de descubrir (bueno, hace un par de semanas tal vez): la palabra clave "ABSOLUTE", la cual permite declarar una variable que comparte espacio físico con otra...No sé desde qué versión existe, tengo que investigarlo, pero como parece funcionar exactamente igual tanto en Delphi como en Free Pascal me va a solucionar la vida en alguna cosa. Sólo espero que lleve en el lenguaje desde hace tiempo...

Existe desde Turbo Pascal, y la uso desde entonces. El ejemplo más inmediato que tengo es la imagen de código en mi perfil de Twitter. :)

Saludos absolutos.

Ñuño Martínez 20-12-2018 11:32:49

Cita:

Empezado por Casimiro Notevi (Mensaje 530045)
¿Un puntero a la misma?

No exactamente. Es más parecido a los "union". Por ejemplo:

Código Delphi [-]
VAR
  UnaLista: ARRAY [1..10] OF BYTE;
  LngLista: BYTE ABSOLUTE UnValor;

En este caso, al compartir "LngLista" la dirección física con "UnaLista", LngLista "contiene" el número de elementos de UnaLista. Sin embargo no es un puntero ya que no puede cambiarse su dirección, así que el código generado es de acceso directo y no una indirección que es lo que generan los punteros.

Hay que tener en cuenta que es un poco peligroso, (aquí sí se parece a los punteros) ya que pueden asignarse valores o permitir el acceso a áreas de memoria:

Código Delphi [-]
VAR
  UnValor, OtroValor, TercerValor, YMas, YTal: INTEGER;

  PROCEDURE Blabla;
  VAR
    MemoriaComprometida: ARRAY [1..4] OF INTEGER ABSOLUTE UnValor;
  BEGIN
   ...
  END;

Pero es útil, sobre todo en operaciones de bajo nivel. Así, en Allegro facilitaría mucho trabajo al poder acceder a la información de (por ejemplo) una imagen no sólo como una lista de octetos (BYTE) sino también de enteros de 32bit.

Nota: Todavía no lo he usado y hablo de lo que he leído, así que puede que no funcione exactamente así. Hay que investigar un poco.
Cita:

Empezado por Al González (Mensaje 530068)
Existe desde Turbo Pascal, y la uso desde entonces. El ejemplo más inmediato que tengo es la imagen de código en mi perfil de Twitter. :)

Saludos absolutos.

Gracias por la información. :)

WHILENOTEOF 21-12-2018 13:16:26

Cita:

Empezado por Al González (Mensaje 530068)
Existe desde Turbo Pascal, y la uso desde entonces. El ejemplo más inmediato que tengo es la imagen de código en mi perfil de Twitter. :)

Saludos absolutos.

En efecto, yo supe de ella a raíz de un podcast que te hicieron los compañeros de NoSoloDelphi, desde entonces la utilizo en mi código.

gmontes 24-12-2018 02:36:18

saludos

cambiando un poco el tema, tienen el precio para méxico?

:D

Al González 24-12-2018 21:39:29

Cita:

Empezado por WHILENOTEOF (Mensaje 530117)
En efecto, yo supe de ella a raíz de un podcast que te hicieron los compañeros de NoSoloDelphi, desde entonces la utilizo en mi código.

¡Qué bien, gracias! :p ^\||/

REHome 30-12-2018 06:28:58

Hola:

Si desinstalo el 10.2 Tokio para instalar 10.3 Rio. ¿Tendré problemas al instalar el nuevo?

La que me armó en su día al instalar el 10.1 al 10.2, estaba todo el rato borrando en el editor de registro durante por lo menos una hora todo lo que diga Delphi, embarcadero y demás, para que me dejara instalarlo sin tener que re instalar windows desde cero, menudo martirio.

Saludos.


La franja horaria es GMT +2. Ahora son las 10:17:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi