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
  #1  
Antiguo 05-11-2004
Avatar de JavierB
JavierB JavierB is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 99
Poder: 22
JavierB Va por buen camino
Sobre el uso de with

Hola a todos.

Supongamos que tengo un código parecido a este:
Código Delphi [-]
with table1 do
begin
  Cadena=FindField('nombre').AsString;
  Delete(Cadena,5,2); //Aquí da un error
end;
Como os imaginareis se produce un error en la línea del Delete porque Delphi cree que quiero hacer Table1.Delete y, claro, sobran parámetros.

¿Hay alguna forma de solucionar esto?

Gracias por vuestra ayuda. Saludos,
__________________
Lo importante no es saber, sino tener el e-mail del que sabe.
Responder Con Cita
  #2  
Antiguo 05-11-2004
frudolph frudolph is offline
Miembro
 
Registrado: oct 2004
Posts: 40
Poder: 0
frudolph Va por buen camino
Sí, tienes que anteponerle al nombre del procedimiento, la unidad donde está declarado. En tu caso:

--> System.Delete(Cadena, 5, 2);
Responder Con Cita
  #3  
Antiguo 05-11-2004
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 JavierB
¿Hay alguna forma de solucionar esto?
Sí. Antepón al identificador la unidad donde está declarada:

System.Delete(Cadena,5,2)

EDITO:

Veo que se me han adelantado por un pelín

// Saludos
Responder Con Cita
  #4  
Antiguo 05-11-2004
Avatar de JavierB
JavierB JavierB is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 99
Poder: 22
JavierB Va por buen camino
Vaya, vaya, vaya... 2 respuestas en tan solo 1 minuto.

Gracias frudolph y roman. Habeis coincidido hasta en el comentario de anteponer la unidad donde está declarado. Me lo anoto para el futuro.

Gracias de nuevo. Saludos,
__________________
Lo importante no es saber, sino tener el e-mail del que sabe.
Responder Con Cita
  #5  
Antiguo 05-11-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Yo propongo:
Código Delphi [-]
 with table1 do
 begin
   Cadena=FindField('nombre').AsString;
 end;
  Delete(Cadena,5,2);

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #6  
Antiguo 06-11-2004
Avatar de JavierB
JavierB JavierB is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 99
Poder: 22
JavierB Va por buen camino
Gracias por tu propuesta marcoszorrilla, pero en este caso prefiero que el Delete esté dentro del bloque with para no tener que poner tanto Table1.

Saludos,
__________________
Lo importante no es saber, sino tener el e-mail del que sabe.
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


La franja horaria es GMT +2. Ahora son las 16:48:12.


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