Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 16-07-2015
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Coincido en que hay que prohibirlo.

http://stackoverflow.com/questions/7...with-in-delphi

Si se usa como :
Código Delphi [-]
with Tquery.create(nil) do begin 
  open
  sql := 'blah blha';
  ExecSql;
  Free;
end;
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:
Código Delphi [-]
procedure TForm3.HazAlgo();
with Form1, Form2 do begin
  ... un chorro código aquí
  ClientWitdth := 300;
  ... un chorro código aquí
end;
end;
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" .
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #22  
Antiguo 17-07-2015
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
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
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.
Responder Con Cita
  #23  
Antiguo 17-07-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Al González Ver Mensaje
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.
Responder Con Cita
  #24  
Antiguo 17-07-2015
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
Cita:
Empezado por Al González Ver Mensaje
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.
Mi madre, ya no me acordaba. Incluso comenté algo. ¡Y leí cosas! ¿Y fue hace poco más de un año? Tengo problemas de memoria.

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.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #25  
Antiguo 20-07-2015
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Cita:
Empezado por Lepe Ver Mensaje
Coincido en que hay que prohibirlo.

http://stackoverflow.com/questions/7...with-in-delphi

Si se usa como :
Código Delphi [-]
with Tquery.create(nil) do begin 
  open
  sql := 'blah blha';
  ExecSql;
  Free;
end;
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:
Código Delphi [-]
procedure TForm3.HazAlgo();
with Form1, Form2 do begin
  ... un chorro código aquí
  ClientWitdth := 300;
  ... un chorro código aquí
end;
end;
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" .
El último objecto (Form2) es el que prevalece y el ClienteWidth sólo afectara el cambio al Form2.
Código Delphi [-]
with Form1, Form2 do begin
es igual a
Código Delphi [-]
with Form1 do
  with Form2 do begin
    ClientWitdth := 300;
    ...
    ...
  end;
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:
Código Delphi [-]
type TDate = record
  Day: Integer;
  Month: Integer;
  Year: Integer;
end;
var OrderDate: TDate;
La siguiente con la declaración.
Código Delphi [-]
with OrderDate do
  if Month = 12 then
  begin
    Month := 1;
    Year := Year + 1;
  end
  else
    Month := Month + 1;
Esto es equivalente a
Código Delphi [-]
if OrderDate.Month = 12 then
begin
  OrderDate.Month := 1;
  OrderDate.Year := OrderDate.Year + 1;
end
else
  OrderDate.Month := OrderDate.Month + 1;
Y si quieres coger el año del Form2
Código Delphi [-]
with OrderDate do
  begin
    Year := Form2.Year;
    ...
  end;
Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
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
Utilización de Uses Livey Varios 1 26-05-2011 00:20:17
Utilización DBLookupListBox? jona-182 SQL 0 11-09-2008 04:16:36
Utilización del iif efelix MS SQL Server 11 22-01-2007 19:13:42
utilizacion trigger dmagui Firebird e Interbase 16 10-06-2005 01:38:55
Utilización de DLL's Enan0 Varios 2 19-05-2004 20:43:13


La franja horaria es GMT +2. Ahora son las 17:40:14.


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