Ver Mensaje Individual
  #6  
Antiguo 19-02-2009
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Reputación: 32
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
No es como yo lo haría, pero así como dentro de TConexion.Consultar creas un TDataSource, me parece que podrías crear también el "TpFIBDataset" que asignas a dicho TDataSource.

Pero debes asegurarte de destruir ambos objetos cuando ya no se necesiten (por ejemplo, al destruir o cerrar el formulario donde están los TcxLookupComboBox).

Por otro lado, te aconsejo revisar la manera en que manejas las excepciones dentro de TConexion.Consultar. Como lo has puesto no ayuda en nada. Cuando modifiques ese método usa un Try-Except para liberar cualquier objeto que haya creado la rutina, ya que ésta terminará de manera anormal.

"Re-elevar" la excepción ("Raise;") está bien cuando antes de esa instrucción haces los "Free" que se ameritan (si no hay nada que "cerrar", liberar o validar, una reelevación no tiene sentido). Y cualquier instrucción detrás de Raise (como ese "Exit") siempre es innecesaria.

Entiendo que eres novel, como humildemente te declaras, pero con mayor razón resulta imperativo que te animes a estudiar concienzudamente algo más sobre el manejo de memoria, la POO y los bloques Try de Delphi. No dudes en abrir nuevos hilos en Club Delphi para exponer las dudas que te vayan surgiendo. Trataremos de ayudarte en base a nuestra capacidad de tiempo y conocimiento.

Y siempre atrévete a leer la ayuda (aunque a veces sea "escasa" o esté en inglés). Quizá tardes una hora en entender un párrafo de 10 líneas (como me sucedió a mí muchas veces), pero la impronta que eso dejará en ti no tendrá precio.

Saludos.

Al González.

Última edición por Al González fecha: 19-02-2009 a las 21:09:44.
Responder Con Cita