Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > La Taberna
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-09-2016
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Campaña para corregir el uso de 'With' en Object Pascal

Hago una propuesta "políticamente incorrecta" para Delphi / Object Pascal: Mejorar la sintaxis de los modernos compiladores Pascal (como es el caso de Delphi) respecto al uso de la palabra reservada With. En las altas esferas existe la intención de desaparecer este estatuto de control por lo perjudicial de su sintaxis en el moderno Object Pascal de estos días.

Desafortunadamente dicha idea ha permeado en muchas de las mentes de colegas con menos cuota de poder, incluso en algunos compañeros de este foro cuya inteligencia no está por debajo de la de quienes deciden el rumbo del lenguaje. Este dogma se ha instalado cómodamente, bajo el "poderoso" argumento de que el With debe desaparecer simplemente porque es malo. ¡Y vaya que lo es! Pero si fue útil durante tantos años es porque también ayuda mucho a simplificar el código que escribimos. Yo evito usarlo desde hace algún tiempo. Estoy consciente de lo terrible que es, pero también de lo bueno que podría seguir siendo si lo mejoramos. Hace un par de años intenté otra propuesta de mejora. Hubo un debate intenso y no se llegó a nada. Incluso admito que mi idea de entonces no era tan buena. Puede que dentro de otros dos años piense lo mismo de esta que les traigo ahora; o quizá esta vez daré, o propiciaré que alguien más preparado que yo dé en el clavo.

Viendo solo sus bondades, hay lógica y sentido común en el uso de With. Evitemos que se siga usando mientras su sintaxis siga siendo riesgosa. Pero invitemos a los fabricantes de compiladores a corregirlo, en lugar de enterrarlo. Todos aquellos que deseen apoyar esta idea (sin que ello les avergüence o les haga comprometer sus intereses) pueden hacer eco de este mensaje, de la imagen que anexo al final o de este tweet.

Quizá las futuras generaciones de programadores Delphi/Lazarus se sientan un poquito más afortunadas gracias al apoyo que reciban iniciativas como la presente.

Muchas gracias.

Al González.
Imágenes Adjuntas
Tipo de Archivo: png WithSolution.png (25,5 KB, 56 visitas)

Última edición por Al González fecha: 17-09-2016 a las 19:17:56.
Responder Con Cita
  #2  
Antiguo 17-09-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
En python se usa asi:

Código PHP:
with open('file.txt''r') as f:
       
f.read()
       
d.write(...) 
Zero ambiguedad.
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 17-09-2016
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por mamcx Ver Mensaje
En python se usa asi:

Código PHP:
with open('file.txt''r') as f:
       
f.read()
       
d.write(...) 
Zero ambiguedad.
Entonces en el ejemplo de la imagen que subí hay -1 ambigüedad.

¿Apoyas la propuesta?
Responder Con Cita
  #4  
Antiguo 17-09-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Interesante propuesta.
No soy partidario de eliminarlo, aunque no lo uso nunca porque puede ser peligroso y no queda claro el código. Sin embargo, con una serie de reglas como las que indicas, sí me parece bien que se mantenga.
Responder Con Cita
  #5  
Antiguo 17-09-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
El problema es que esta propuesta, la escuchara el dueño de Delphi? Y de hacerlo, creara los medios para migrar el codigo?

Lo dudo.

No es que sea muy dificil ver que se puede arreglar en un lenguaje, es que es mas facil agregar que quitar, y ni siquiera en los open source se ve mucho que se animen a quitar.
__________________
El malabarista.
Responder Con Cita
  #6  
Antiguo 17-09-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Me ha parecido entender que se pretende modificar para que sea más seguro y no haya equívocos o ambiguedades en el código, ¿no es eso?

Última edición por Casimiro Notevi fecha: 17-09-2016 a las 20:17:46.
Responder Con Cita
  #7  
Antiguo 17-09-2016
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por mamcx Ver Mensaje
El problema es que esta propuesta, la escuchara el dueño de Delphi?
Eso depende de ti, de cómo emplees tu tiempo y energía. El mundo mejora conforme decimos vale y actuamos; empeora cuando sólo nos detenemos a mirar las dificultades.
Responder Con Cita
  #8  
Antiguo 17-09-2016
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Me ha parecido entender que se pretende modificar para que sea más seguro y no hay equívocos o ambiguedades en el código, ¿no es eso?
¡Correcto! Eso pretende esta propuesta.
Responder Con Cita
  #9  
Antiguo 17-09-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Al González Ver Mensaje
¡Correcto! Eso pretende esta propuesta.
Me apunto, aunque no se me ocurre cómo darle visibilidad
Responder Con Cita
  #10  
Antiguo 17-09-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Al González Ver Mensaje
Eso depende de ti, de cómo emplees tu tiempo y energía. El mundo mejora conforme decimos vale y actuamos; empeora cuando sólo nos detenemos a mirar las dificultades.
Entiendo que intentes ser optimista, pero con Delphi todo ha sido muy consistente por años.

Ahora bien, ve a los foros del dueño, haz la propuesta, habla con la gente dentro, si recibes el mas *minimo* de escucha te sigo encantado.

Y lo digo, porque eso es lo que he hecho antes. No hay como ser optimista cuando la *realidad* ha sido consistente.

Ademas, es un hecho que en la generalidad de los casos, no se recibe muy bien cambios en los lenguajes que impliquen romper codigo, mucho mas cuando aqui la comunidad delphi es MUY *reaciente* a cambiar.

Pero sabes que me encanta que me prueben equivocado, mas cuando eso resulta en que le vaya bien a Delphi.

P.D: Y apuesto que la misma respuesta la recibirias de FreePascal.
__________________
El malabarista.

Última edición por mamcx fecha: 17-09-2016 a las 21:33:12.
Responder Con Cita
  #11  
Antiguo 17-09-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
A mi no me gusta el with en ninguna de sus formas, sabores y/o colores. En ningun lenguaje. Asi que de proponer algo, solamente se me ocurre matarlo; y si no lo matan, no usarlo. Asi de facil

Por mas que se implemente algo como lo de python, sigue teniendo el problema de que agrega un bloque mas al codigo, con un nivel de sangria adicional, el cual no hace para nada mas legible el codigo. Si el problema es que no gusta escribir "nombres largos de variables" se puede utilizar una fea tecnica que es crear una temporal con el nombre "corto"

Código Delphi [-]
procedure TFoo.Something;
var
  ds: TDataSet;
begin
  ds := Self.MyDataSet;

  ds.Close;
  ds.Open;
  ds.FieldByName('foo');
 // etc
end;

Aun asi, yo sigo pensando que las variables abreviadas siguen siendo malas (de ahi lo de feo) porque "ds" no me dice mucho. Es como cuando aprendemos a programar que no se porque motivo a las variables siempre las llamabamos: x, y, z, temp, aux, flag, etc..

Otra forma de atacar el problema es usar metodos encadenados, o interfaces fluidas; basicamente todos los metodos que soporta la interfaz devuelven el objeto al que se le envio el mensaje; osea, todo devuelve Self y le puedo seguir encadenando llamadas a metodos.

De esta forma se puede usar una coleccion asi:

Código Delphi [-]
procedure Test;
var
  Collection: Spring.Collections.IEnumerable;
begin
  Collection
    .Where(function(const Each: TMyClass): Boolean
       begin
         Result := Each.Enabled;
       end)
   .Sort(function(const Left, Right: TMyClass): Integer
       begin
         Result := Left.Index - Right.Index;
       end)
  .ForEach(procedure(const Each: TMyClass)
       begin
         WriteLn(Each.Name);
       end);
end;
Responder Con Cita
  #12  
Antiguo 17-09-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
El problema con Delphi es que la sintaxis es muy "verbosed" y no se presta para hacer código conciso; ademas el tener que declarar las vbles en su bloque. Ambos son puntos a favor del lenguaje, pero hay cosas con las que el codigo deja de ser idiomatico.

Lo mismo con las interfazes fluidas y muchas otras cosas.

Para visualizar un lenguaje en el espiritu de pascal pero mas "conciso" este es el mejor ejemplo que conozco:

http://nim-lang.org/
__________________
El malabarista.
Responder Con Cita
  #13  
Antiguo 17-09-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Cita:
Empezado por mamcx Ver Mensaje
Entiendo que intentes ser optimista, pero con Delphi todo ha sido muy consistente por años.

Ademas, es un hecho que en la generalidad de los casos, no se recibe muy bien cambios en los lenguajes que impliquen romper codigo, mucho mas cuando aqui la comunidad delphi es MUY *reaciente* a cambiar.
No es del todo cierto, Mario. Embarcadero muchas veces ha dado como "excusa" el no querer hacer X o Z por justamente lo que comentas, no romper un moton de codigo que ya existe, cuando no se puede preservar la compatibilidad hacia atras.

Pero en muchos otros casos si han "obligado" a ciertos cambios que se han mantenido consistentes desde el dia #1.

Por ejemplo, los string en Delphi desde toda la vida fueron 1-based, soportan COW: simplemente al asignar un nuevo valor a un string, la RTL se encarga de todo. En realidad lo que terminamos teniendo es un string que internamente es "inmutable", pero se tiene cierta "sintaxis sugar" que permite tratarlos como mutables, sin tener que andar usando StringBuilders. Otros lenguajes matarian por poder hacer algo asi. Todo eso esta muy bien en Delphi, pero solo es "estable" en el compilador para Windows

Para los compiladores moviles, los string son 0-based, y aun no, pero en el futuro, podrian volverse "realmente" inmutables:

Cita:
Immutable Strings: If you want to change a character inside an immutable string, you have to break two or more, and combine these portions, or use a TStringBuilder.

For example, the following common operation (indexing into a string and modifying the string) cannot be done with immutable strings:

Código Delphi [-]
 S[1] := 'A';

If you use a string operation such as this, the Delphi mobile compilers emit the warning W1068 Modifying strings in place may not be supported in the future (Delphi). At some point, this warning is to be replaced by an error; you can convert it into an error right now on the Hints and Warnings page in Project Options.

We Recommend Using TStringHelper to Handle Strings in Mobile and Desktop Apps
Eso cambia mucho el codigo que ya existe!!. Por ejemplo: Quien no ha usado la funcion System.Pos. Bien, esa funcion solo sirve para strings con indice 1-based; no sirve para las 0-based. Para solucionarlo, "solamente" debemos usar TStringHelper.IndexOf. En toda nuestra base de codigo.

No solamente pasa con Pos; lo mismo sucede con: Copy, Delete, Trim.. basicamente hay que reescribir el codigo que maneja strings.

En un principio, los compiladores para moviles soportaban el tipo UTF8String. Luego, no se en que version, lo sacaron. Ahora en la ultima, 10.1 Berlin, esta de nuevo.


Entonces, no quiero criticar porque las cosas cambian; para mejorar, hay que cambiar. Si se pierde cierta compatibilidad hacia atras, "lo lamento": no se puede pretender que el codigo que esta escrito en Delphi en el año 2000, funcione sin tocarle absolutamente nada en 2016; no se hasta que punto se puede decir que es una "feature" que el codigo tan legado funcione: es tiempo de refactorizar y mejorar el codigo legado para que use las caracteristicas mas nuevas. Sino, no tiene mucho sentido actualizar el compilador "porque si"

Lo que si es para criticar, es que Embarcadero se jacte de decir: "no queremos perder la compatibilidad hacia atras", y se ponga a jugar con los string (entre otras cosas) como lo ha estado haciendo
Responder Con Cita
  #14  
Antiguo 18-09-2016
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Al recuerdo que hace un tiempo nos habías comentado sobre esa forma de usar el with, ¿Puede ser? ¿O recuerdo mal?

Suelo tener mis diferencias con Mario, pero creo que en esta coincido sobre como debería ser declarado el uso del with. Se me hace que si el problema del with pasa por su problema de ambigüedad y nomeclatura, la forma más familiar al estilo de Object Pascal debería tener la construcción "With As Do"

Ahora bien, también siento que de llevar esa forma de usarlo, al final no elimina nada... más bien está escondiendo un problema dentro de otro.
Como bien lo señala Agustín, ahora el problema se traduce en nombres de variables cortos.

La verdad es que entre tener esto:

Código Delphi [-]
With.Algo := ...

O el tener esto:

Código Delphi [-]
Clave.Algo := ...

Siendo Clave:

Código Delphi [-]
with TMiObject.Create as Clave do

No hemos ganado mucho que digamos.
Y la técnica sucia del nombre corto del ejemplo de Agustín, no deja de ser otra forma de llegar a lo mismo.

Aún así, considero que el with podría recibir algún tipo de mejora... y que merece cierta compasión y no pasarlo por la guillotina (no todavía...)
El problema de ambigüedad y debilidad del with se da cuando no se puede distinguir el objeto de referencia del resto de los posibles objetos con los que podría "interactuar". Porque hay casos en los que no hay problemas de distinción, como el ejemplo de muestra que hay en Delphi Basics:

Código Delphi [-]
type
  // Declare a customer record
  TCustomer = Record
    firstName : string[20];
    lastName  : string[20];
    address1  : string[100];
    address2  : string[100];
    address3  : string[100];
    city      : string[20];
    postCode  : string[8];
  end;

 var
  John, Sarah : TCustomer;

 begin
  // Set up the John's customer details
  With John do
  begin
    firstName := 'John';
    lastName  := 'Smith';
    address1  := '7 Park Drive';
    address2  := 'Branston';
    address3  := 'Grimworth';
    city      := 'Banmore';
    postCode  := 'BNM 1AB';
  end;

Si la mejora pasa por tener alguna "marca" que elimine esa ambigüedad ¿Porqué no pensar en algún carácter especial, como el & para indicar que lo que sigue pertenece al objeto con el que se está haciendo uso en la construcción With? Así podríamos entonces esperar cosas como:

Código Delphi [-]
 begin
  // Set up the John's customer details
  With John do
    &firstName := FirstName; // FirstName podría ser una variable global... & es la marca e identifica a John

Aunque esto no me suena muy Object Pascal friendly... Quiero pensar que podría hacerse de alguna otra forma. Yo por el momento no soy capaz de pensar otra alternativa de llevarlo a cabo.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #15  
Antiguo 18-09-2016
avmm2004 avmm2004 is offline
Miembro
 
Registrado: jun 2006
Ubicación: Santa cruz de Tenerife, Islas Canarias
Posts: 500
Poder: 18
avmm2004 Va por buen camino
El with tiene fallos importantes .... a la hora de depurar un programa los objetos referenciados con with no muestran su valor en el popup etc.
A mi me da que no esta del todo bien implementado en el lenguaje o en el ide. Un fallo de esos con la cantidad de veces que se depura un programa es
muy importante. Por lo menos en delphi xe2 y xe4 falla.

Yo por NORMA no lo utilizo.
Responder Con Cita
  #16  
Antiguo 18-09-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Delphius Ver Mensaje
Código Delphi [-]
 begin
  // Set up the John's customer details
  With John do
    &firstName := FirstName; // FirstName podría ser una variable global... & es la marca e identifica a John
Esto me hizo recordar (no se de donde) otra forma de hacerlo y que no quedaria tan mal:

Código Delphi [-]
 begin
  // Set up the John's customer details
  With John do
    .firstName := FirstName;
    .lastName := LastName;
    .fullName := capitalize(.firstName  + " " + .lastName);
__________________
El malabarista.
Responder Con Cita
  #17  
Antiguo 19-09-2016
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Ahora mismo voy a ver si en el foro de Lazarus/Free Pascal han dicho algo de esto, y si no encuentro nada lo comento a ver qué dicen.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #18  
Antiguo 19-09-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Al González Ver Mensaje
Hago una propuesta "políticamente incorrecta" para Delphi / Object Pascal: Mejorar la sintaxis de los modernos compiladores Pascal (como es el caso de Delphi)
A primeras decir que no veo porqué es "políticamente incorrecta" esta propuesta Al. Me parece más "políticamente incorrecta" el eliminar directamente el WITH. El hecho de proponer mejoras no veo porqué debe serlo (y más si lo enfrentamos a la propuesta de eliminarlo)

Cita:
Empezado por Al González Ver Mensaje
Mejorar la sintaxis de los modernos compiladores Pascal (como es el caso de Delphi) respecto al uso de la palabra reservada With.
El problema que le veo a esto Al (independientemente de gustos) y por lo que pienso que no debe hacerse es por un tema de compatibilidad. Es más, me cuesta mucho pensar que se vaya a eliminar de pronto un comando, cuando eso provocaría que, infinidad de código de programas, librerías y componentes dieran erores en lugares que antes eran corectos. Y además sin la posibilidad de "convertir" código a una nueva versión.
Creo que es añadir un problema "sin ninguna necesidad".
Me explico; Si vas a cambiar los componentes de conexión a Base de Datos, sabes que vas a introducir "un problema" en los códigos existentes a la hora de actualizar, pero es "necesario", pero en este caso es crear un problema donde no lo hay.

Es el mismo caso del GOTO. ¿Porqué no se ha eliminado el GOTO de la sintaxis de Object-Pascal/Delphi? Me da la sensación de que es por lo mismo.
¿Qué necesidad hay?

A saber cuantos códigos tendrán algo como esto:

Código Delphi [-]
procedure TForm1.FormClick(Sender: TObject);
label
  mensaje2;
begin
  Goto mensaje2;
  MessageDlg('Mensaje 1', mtInformation, [mbOK], 0);
mensaje2:
  MessageDlg('Mensaje 2', mtInformation, [mbOK], 0);
end;

GOTO saludo;

saludo:
Un saludo
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #19  
Antiguo 19-09-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por mamcx Ver Mensaje
Esto me hizo recordar (no se de donde) otra forma de hacerlo y que no quedaria tan mal:

Código Delphi [-]
 begin
  // Set up the John's customer details
  With John do
    .firstName := FirstName;
    .lastName := LastName;
    .fullName := capitalize(.firstName  + " " + .lastName);
Si no mal recuerdo, es Visual Basic, donde sucede esto, y también me parece bien. Por lo menos, si se trata de meter un caracter extra, pues mucho mejor el punto que el ampersand.


Yo voy más de acuerdo con la comparativa con el goto. No hay necesidad. Lo que es necesario es hacer que la gente programe bien, que tenga buenas técnicas y en tal caso, el with, al igual que el goto, serán evitados en su mayoría de veces. Incluso el goto es usado, aunque muchos lo nieguen o lo desconozcan, cada vez que usan un break o un continue.

Más me gustaría, por ejemplo, ampiar el uso del case a strings, cosa que, a diferencia del with, no rompería ningún código.

LineComment Saludos
Responder Con Cita
  #20  
Antiguo 19-09-2016
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por roman Ver Mensaje
Más me gustaría, por ejemplo, ampiar el uso del case a strings, cosa que, a diferencia del with, no rompería ningún código.

LineComment Saludos
Aunque caro en algún momento nos enseñó como se hace tal cosa con el string, estoy de acuerdo que debería ser más natural y extenderse aún más la funcionalidad del case, como lo hacen otros lenguajes.

En cuanto al tema principal del hilo de marras, encuentro atractiva la propuesta que expone Al, sin embargo pienso que si voy a usar un "Alias" para referirme a las referencias dentro del with (Ya sea punto, ampersand, with...) pues para eso sigo sin usarlo... ya que el punto le puede quitar claridad al código y el "with" pues... para usar la palabra with con todo y reglas, mejor uso el nombre del objeto ya instanciado.

Aunque puede ser que mi opinión esté un poco marcada por el hecho de haber decidido hace tiempo, no seguir usando dicha sentencia y no me ha hecho falta... es más, creo que eso me ha evitado muchos problemas y tener que reescribir cosas.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Analogías entre C++ y Object Pascal noob C++ Builder 3 16-02-2009 18:19:54
como usar object pascal y gtk Lionheart OOP 6 09-12-2005 19:31:08
manual de excepciones de object pascal para free pascal??? Garion OOP 3 27-05-2005 00:42:29
¿Object Pascal para todo? ReigDidion OOP 10 12-02-2004 08:28:07


La franja horaria es GMT +2. Ahora son las 00:49:17.


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
Copyright 1996-2007 Club Delphi