Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 24
Caro Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Assigned es esencialmente lo mismo que la comparación con nil por lo que si falla uno también el otro. Es raro que falle porque siendo una variable global, tendría que inicializarse a nil. Sin embargo, veo que en el código que nos presenta Cecilio usa

ds.create(self)
lo cual es incorrecto para crear el objeto y quizá de ahí venga la falla. Tendría que ser así:



Código Delphi [-]
ds := TClientDataSet.create(self)

No me había fijado bien como estaba creando su ClientDataSet, ayer respondi rapido y me desconecte despues.

Como te dice el amiguito Roman no debería fallar ya que con el Assigned es como si estuvieras preguntando.

Código Delphi [-]
  if ClientDataSet<> nil then
   //esta creado

La creación de tu ClienDataSet tampoco esta correcta, debes hacerlo como te indica Roman y podrías hacer algo así.

Código Delphi [-]
 if Assigned(ClientDataSet) then
  ClientDataSet.Free; //Si esta creado liberamos

 ClientDataSet := TClientDataSet.Create(Self);

Tengo una pregunta yo pense que si no creabas el objeto apuntaba a nil no importando que sea una variable global o una local, acabo de hacer la prueba, si es una variable local no apunta a nil, siendo así con el codigo anterior entra al if libera y al intentar crear te sale un AccessViolation. Estaba haciendo un procedimiento donde mi Objeto es una variable Local y ya me rompiendo mi cabeza porque no estaba funcionando bien, ahora veo que no estaba apuntando a nil, en mi programa en una parte según una condición creaba mi objeto y mas abajo preguntaba si estaba creado entonces que haga algo. ¿Me pueden explicar porque no apunta a nil cuando es variable local, la solución para una variable local sería hacer que ese tu objeto apunte a nil antes de hacer algo?.

Cecilio, libera tu ClientDataSet con FreeAndNil como te dice Neftali.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #2  
Antiguo 14-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
No sé el por qué, quizás por eficiencia, tarda menos en ejecutar procedimientos locales porque no tiene que inicializar las variables.

Muchas veces es redundante, delphi la inicializa y nosotros la usamos en un bucle for que también la inicializa.... pues ... ¿pá qué? .

Mi comentario es sólo para añadir que pasa con todas las variables locales, incluso un Integer, currency, etc no tendrá el valor cero como puede esperarse.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 14-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 24
Caro Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
Mi comentario es sólo para añadir que pasa con todas las variables locales, incluso un Integer, currency, etc no tendrá el valor cero como puede esperarse.
Hola Lepe, gracias por responder, se que pasa eso con los demas tipos (integer,......), pero no pense que pasaba lo mismo con un objeto que no ha sido creado aun. Pense, que si defino mi variable, digamos mi ClientDataSet : TClientDAtaSet, con eso tendría una referencia al objeto de tipo TClientDataSet, por lo que pense que esa variable apuntaba a nil, ya que no lo hemos creado todavía.

No hay problema entonces la solución sería cuando tenga un objeto como variable local inicializarlo en nil aunque no lo haya creado, para no tener problemas en el caso que describo en mi anterior mensaje.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
saber si alias esta creado en el dbe Manuel Varios 2 13-10-2006 18:27:37
Como saber si un Formulario ha sido creado Durbed OOP 7 13-10-2005 13:06:28
destruir objeto creado en tiempo de ejecucuión jaime cotino Varios 5 28-06-2005 20:45:36
Saber si un formulario ya está creado o no. Tecnic2 OOP 2 27-09-2004 13:27:01
¿Cómo saber si un Form está creado? nesetru Varios 5 09-02-2004 12:59:37


La franja horaria es GMT +2. Ahora son las 19:49:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi