![]() |
Utilizacion del With
Hola:
Tengo una duda porque siempre estube programando con Delphi 7 y recientemente he estado incursionando en Delphi y C++ XE2 y en D7 en el codigo uno podia poner una sintasis como esta para una simple consulta a un BD:
y estuve buscando en la ayuda de ambos y no lo vi. Aunque el Delphi XE2 cuando compila, no lo muestra como error el C++ si. Es que esa expresion caduco o es que hay algo que lo sustituyo, porque la expresion with ahorraba buena cantidad de codigo. Saludos Luis Garcia |
Hola Luis,
Hasta donde se, no ha caducado. No veo un por qué. Sin embargo siempre se ha advertido sobre el cuidado de utilizarlo pues podría generar ambiguedades que no advierte el compilador (warnings) Te dejo este enlace saludo, |
Nunca uses with, te vas a ahorrar un millardo de problemas
|
Yo también considero que el With actual es muy nocivo si no se utiliza responsablemente, hay que tratar de evitarlo. Pero les recomiendo leer mi respuesta en la discusión enlazada por gatosoft:
Cita:
Saludos. |
Utilizacion del With
Voy a mirar el enlace y muchas gracias por sus comentarios.
Saludos Luis Garcia |
Hola lgarcia.
Cita:
Saludos :) |
lgarcia,
Cita:
Adicionalmente a todo lo mencionado, te sugiero revisar esta información referente al uso de la sentencia With: Espero sea útil :) Nelson. |
Si fuera por mi, habría que prohibirlo directamente...
:p |
Cita:
|
Cita:
Saludos |
Yo utilizo with continuamente ya que me ahorra mucho código y, nunca he tenido ningún problema.
He combinado with con dos componentes a la vez, TEdit y TStaticText y sin problema aparente y, aún lo sigo utilizando por la gran cantidad de código que me ahorro. Si sabes utilizarlo y sabes cuales son sus beneficios y perjuicios, utilízalo en beneficio tuyo. Un saludo. |
No digo que se no sea útil y ahorre tiempo, pero eso provoca que el código sea menos claro y más difícil de debuggar.
por ende más propenso a errores. Y esas son dos cosas que para mi tienen suma importancia, la claridad y la seguridad en cuanto a fallos. |
Si mal no recuerdo lo lei en StackOverflow. Pero seamos sinceros, el with lo usamos porque a veces tenemos declaradas variables (bueno mas que variables, componentes) asi:
|
Justamente lo segundo es lo ideal.
(1) La declaración de componentes es clara. (2) Escribimos lo mínimo posible. (3) El debug y seguimiento es claro y sin errores. ^\||/^\||/ |
Para gustos los colores. Un saludo. |
Cita:
|
Cita:
Un saludo. |
Cita:
|
Cita:
Cita:
Saludos :) |
Daniel,
Cita:
Nelson. |
Coincido en que hay que prohibirlo.
http://stackoverflow.com/questions/7...with-in-delphi Si se usa como : Pues vale... aunque eso debería ser una función llamada ExecSql( const sql : string) con todo el código dentro, así que aún así no debería usarse el with. El problema que he visto en varios sitios es este: A qué se refiere el Clientwidth, a Self, a Form1, a Form2... y las rutinas que se llaman dentro del with, ¿donde están definidas?. Pues eso, claridad, legibilidad, seguridad... Mejor "sin" que "con" ;), y si conduces, mejor "sin" :p. |
Yo insisto en que hay que quitarle todo lo malo (anidación, cabecera multivalor y ausencia de marcador) y agregarle un marcador/calificador especial para los miembros referidos dentro del bloque. De esa manera se solucionan TODOS los problemas que conlleva el uso de With. Aquí una propuesta que va en esa línea de razonamiento.
Hace un año tuve el placer de debatir el tema con Jeroen Pluimers (recomiendo esta lectura): http://www.delphifeeds.com/go/f/1138...hiFeeds.com%29 Estoy seguro de que mi boba propuesta puede mejorarse con la participación de muchos otros colegas. ¿Se animan también a corregir el With? Saludos. :) |
Cita:
|
Cita:
De todas formas, como dije en su momento, el uso de las comillas no me convence. En la conversación que enlaza Lepe alguien comenta que VisualBasic prefija con un punto. Sería una adición interesante. |
Cita:
es igual a Si los objetos obj1, obj2, objn son iguales, sólo afectara al último objecto, si tienes todo esto claro, pues NO tendrás problema con el with. ejemplo: La siguiente con la declaración. Esto es equivalente a Y si quieres coger el año del Form2 Un saludo. |
La franja horaria es GMT +2. Ahora son las 21:03:28. |
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