Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-07-2022
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.285
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
-Syntax Censor- WITH, GOTO, and LABEL

Hace poco desde Embarcadero se propuso un debate sobre el uso de algunos elementos de la sintaxis de Delphi (sintax censor).
Fue sobre el FreeAndNil.

Tuvo bastante éxito y salieron opiniones y argumentos interesantes, así que ahora han propuesto uno nuevo. Me ha parecido interesante y lo traslado aquí (aunque creo que alguna vez ya hemos comentado sobre el tema).

En concreto este va sobre el uso deestos 2 elementos de la sintaxis en Delphi (y pongo las 4 respuestas posibles):

(1) WITH
  • ¡Me encanta!
  • Tiene sus usos, preservarlo
  • Deprecar y generar un Warning al usarlo
  • Eliminarlo definitivamente con fuego!!

(2) GOTO/LABEL
  • ¡Me encanta!
  • Tiene sus usos, preservarlo
  • Deprecar y generar un Warning al usarlo
  • Eliminarlo definitivamente con fuego!!
Estaría bien, escoger y poner un pequeño comentario justificando la respuesta.

Animaros!!!
__________________
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
  #2  
Antiguo 15-07-2022
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.285
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
Contesto el primero...
---------------------------------------------------------------


(1) WITH => Tiene sus usos, preservarlo

Personalmente no lo uso y además lo desaconsejo por los errores que puede producir y las confusiones que puede generar cuando lees código (ya seas tú mismo o otra persona).

Si lo que se puede evitar con el WITH, es algo muy largo tipo:

Código Delphi [-]
TBitBtn(Builder.FormPresentacion.aControles[i])...
TBitBtn(Builder.FormPresentacion.aControles[i])...
TBitBtn(Builder.FormPresentacion.aControles[i])...

Lo que hago es crear una variable, asignarlo y utilizar la variable:

Código Delphi [-]
c := TBitBtn(Builder.FormPresentacion.aControles[i]);
c...
c...

Aun así voto por dejarlo porque entiendo que a otras personas les puede ser útil.


(2) GOTO/LABEL => Eliminarlo definitivamente con fuego!!

Sólo lo uso en ficheros .CMD/.BAT que uso para automatización. En Delphi nunca lo he usado, es más, ni sabía que se podía utilizar.
__________________
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
  #3  
Antiguo 15-07-2022
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Voto por dejar el "with"... aunque ciertamente... puede confundir... pero depende y cómo: si se usa bien (si no se andan mezclando) puede estar bien, aunque, en efecto no deja de ser algo que puede evitarse. Y respecto del "goto / label" opino lo que tú, Germán, no lo he usado nunca en Delphi, y, es porque no lo he visto necesario hasta ahora.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 15-07-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
With: Nunca lo uso. Aunque lo dejaría pero avisaría de que puede ser peligroso. (No está esa opción).
Goto: No sabía que existiera para Delphi.
Responder Con Cita
  #5  
Antiguo 15-07-2022
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
WITH => Tiene sus usos, preservarlo

Me es útil cuando no quieres crear una variable pero quieres utilizar el objeto para algo específico

Código Delphi [-]
with objeto.create do
begin
  ....
end;

Pero..... como siempre hay un pero, en otros usos resulta en errores de lógica cuasi fatales.

GOTO/LABEL => Deprecar y generar un Warning al usarlo

Lo usé con Turbo Pascal 5.0 y me fue de utilidad, lo dejaría solo por cuestiones sentimentales

Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 17-07-2022
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.235
Poder: 20
ElKurgan Va camino a la fama
Thumbs up

With -> Preservarlo, lo usa muchísima gente

Goto/label -> Tampoco lo he usado nunca, así que no veo porqué debería usarlo a partir de ahora

Saludos
Responder Con Cita
  #7  
Antiguo 25-07-2022
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
Casi unanimidad, oyes.

WITH no suelo usarlo, aunque alguna vez se me ha escapado. Yo lo dejaría.

LABEL/GOTO es una reliquia. La verdad es que puede ser peligroso (al menos antiguamente, que te permitía saltar de una rutina a otra diferente, aunque creo que lo cambiaron en un Turbo Pascal para que no se permitieran saltos cruzados). Yo nunca lo he usado en Delphi ni en Free Pascal. No sé si quitarlo, pero unos Warning bien gordos estarían bien.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #8  
Antiguo 26-07-2022
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
(1) WITH: Tiene sus usos, preservarlo
Clarifica el código cuando se usan nombres largos (me gusta que sean explicativos) pero detesto cuando un with ocupa líneas y líneas de código (con más de 30 se convierte en un engorro y algo peligroso).

(2) GOTO/LABEL: Eliminarlo definitivamente con fuego!!
Nunca me ha gustado, aunque tengo código que lo usa (programas muy antiguos en los que impera la norma de si funciona no se toca).
Responder Con Cita
  #9  
Antiguo 28-07-2022
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.285
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
Pues aquí algunos resultados de la encuesta general.
Sorprende alguno, por cierto...
(al menos a mi)

__________________
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
  #10  
Antiguo 28-07-2022
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.285
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
Aquí el resumen completo:
https://blogs.embarcadero.com/delphi...es-and-replay/

Los gráficos completos.

¿Los quemamos también?

__________________
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
  #11  
Antiguo 28-07-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
¿Los quemamos también?
A la hoguera con ellos
Responder Con Cita
  #12  
Antiguo 28-07-2022
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
No estoy a favor de la violencia. Todo el mundo es libre de estar equivocado, y los demás somos libres de mirarlos mal.
Responder Con Cita
  #13  
Antiguo 28-07-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por kuan-yiu Ver Mensaje
No estoy a favor de la violencia. Todo el mundo es libre de estar equivocado, y los demás somos libres de mirarlos mal.
Tienes razón, la hoguera es demasiado cruel, es mejor la guillotina, es más rápida y así no sufrirán
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
Error al usar operadores ternarios con goto aguml C++ Builder 18 01-06-2017 16:47:43
¿Cual es la diferencia entre Find Key y Goto Key? Jere_84 Varios 5 09-04-2012 18:32:52
Incorrect syntax near Ledian_Fdez SQL 4 03-05-2010 14:41:26
Error con goto en excel. Gaim2205 Servers 0 18-03-2009 23:47:19
Error de goto afuera mjjj Varios 2 28-07-2008 21:35:30


La franja horaria es GMT +2. Ahora son las 22:46:24.


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