Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-06-2010
socger socger is offline
Miembro
 
Registrado: jun 2004
Posts: 89
Poder: 20
socger Va por buen camino
Problemas al no encontrar un tDataSource

Tengo un tForm donde tengo componentes Zeos TzConnection y TzQwery a los que los tengo unidos entre si hasta llegar a un TDataSource.

Bién si en este tForm pongo un tDBEdit y lo asocio en su propiedad Datasource al TDataSource único que tengo en este formulario funciona perfectamente.

El problema radica cuando creo otro formulario y en este pongo en la cláusula uses el anterior tform, pues si en este nuevo tForm pongo un dbEdit, en su propiedad DataSource no aparece el tDataSource del formulario primero.

¿Por qué creeis vosotros que me ocurre esto?. En Delphi si que es posible hacerlo, pero no se porqué en Lazarus no. Algo tengo que haber hecho mal, pues me da un error de Invalid Operation cuando intento ponerle a mano el DataSource del otro formulario (nombredelform.nombredelDataSource)

Saludos y gracias de antemano
Responder Con Cita
  #2  
Antiguo 02-07-2010
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
Hola Socer,

Yo no trabajo con lazarus, pero en teoría no debe de haber ningún problema al respecto, haz realizado la unión del segundo formulario con el primero.

Un saludo, Amigo mio.
Responder Con Cita
  #3  
Antiguo 02-07-2010
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por socger Ver Mensaje
Tengo un tForm donde tengo componentes Zeos TzConnection y TzQwery a los que los tengo unidos entre si hasta llegar a un TDataSource.

Bién si en este tForm pongo un tDBEdit y lo asocio en su propiedad Datasource al TDataSource único que tengo en este formulario funciona perfectamente.

El problema radica cuando creo otro formulario y en este pongo en la cláusula uses el anterior tform, pues si en este nuevo tForm pongo un dbEdit, en su propiedad DataSource no aparece el tDataSource del formulario primero.

¿Por qué creeis vosotros que me ocurre esto?. En Delphi si que es posible hacerlo, pero no se porqué en Lazarus no. Algo tengo que haber hecho mal, pues me da un error de Invalid Operation cuando intento ponerle a mano el DataSource del otro formulario (nombredelform.nombredelDataSource)

Saludos y gracias de antemano
Tenes abierto el datamodule?
Que versión de lazarus?
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #4  
Antiguo 09-07-2010
socger socger is offline
Miembro
 
Registrado: jun 2004
Posts: 89
Poder: 20
socger Va por buen camino
Solucionado

Al final he resuelto aparentemente el problema. Todo radica en la opción del menú de Lazarus .... Proyecto\Opciones del proyecto y sobre la lengüeta Formulario

Ahí tengo los formularios que se han ido añadiendo al proyecto, yo sólo pongo en el recuadro de Crear Formularios Automáticamente, aquellos que arrancan con la aplicación y que siempre estarán residentes. Los demás los tengo en el recuadro Formularios disponibles, o sea que se añaden al proyecto pero no los creo automáticamente, sino desde código cuando me hacen falta. Esto lo heredo de Delphi para no cargar la memoria del equipo innecesariamente, de tal manera que los creo, los uso y los destruyo.

Bien pues todos los formularios que estén en este recuadro, no podrán ser vistos en el IDE, por otros formularios a no ser que estén en el otro recuadro. Por ejemplo esto ocurre en la propiedad Datasource del componente tDBEdit. El formulario2 no podrá ver al formulario1 a no ser que el uno esté sobre el recuadro CREAR FORMULARIOS AUTOMATICAMENTE. Así que la solución es tenerlos en este recuadro por un tiempo hasta rellenar todas las propiedades necesarias y luego volverlo al recuadro FORMULARIOS DISPONIBLES. Por su puesto también es necesario tenerlo el formulario1 en la implementation del formulario2, si no ni tansiquiera se podría compilar si su código llamara a alguna función o procedimiento del formulario1.

Me ha costado trabajo y imaginación pero esta solución funciona, si otro usuario descubre el porqué se lo agradecería. O si encuentra otro modo de solucionarlo al estilo Delphi.

Saludos y Gracias por tu respuesta obleup (osea salva)
Responder Con Cita
  #5  
Antiguo 09-07-2010
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por socger Ver Mensaje
Al final he resuelto aparentemente el problema. Todo radica en la opción del menú de Lazarus .... Proyecto\Opciones del proyecto y sobre la lengüeta Formulario
Me parece que estas confundido.

Los formularios en lazarus funcionan igual que en Delphi, de modo que aunque te parezca que lo que hiciste posibilito que realices una acción determinada, te aseguro que fue otra acción la que soluciono tu problema.
Al igual que delphi los datamodules deben ser lo primeros en el orden de creación si están siendo usados por otros form, y no serán utilizados como formulario principal. El formulario principal es el primer descendiente de TForm que se encuentre en la lista de autocreación , al igual que en Delphi.

Además, para poder usar una datasource o cualquier componente de un datamodule el mismo debe estar en la uses list del formulario que lo usará, y debe estar abierto en el IDE, al igual que Delphi.

Espero haber aclarado la confusión.

Saludos
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
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
Copiar TADOQuery a TDataSource kasper SQL 6 26-02-2010 11:55:59
¿es necesaria la BDE si usamos TDataSource? coso SQL 5 04-08-2008 15:16:17
TDataSet,TDataSource,TclientDataSet teote Conexión con bases de datos 1 17-07-2008 16:52:31
Como enlazar el TDataSource a un TpFIBQuery ???? AGAG4 Conexión con bases de datos 3 21-10-2006 00:44:20
TDataSource - ¿Para qué existe? roman Debates 6 14-07-2004 19:31:44


La franja horaria es GMT +2. Ahora son las 10:31:04.


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