Jump to content


Photo

Problema con los datamodules en Codetyphon


  • Please log in to reply
3 replies to this topic

#1 AngelF

AngelF

    Advanced Member

  • Miembros
  • PipPipPip
  • 100 posts
  • LocationValencia - España

Posted 15 October 2014 - 12:23 PM

Hola a todos.

Utilizamos Codetyphon versión 5.0  recién salida del horno (ya sabréis que es un Lazarus engordado) y estamos teniendo un raro problema con el uso de datamodules.
En un proyecto muy sencillo, ponemos un formulario1 con su unit01, un datamodule con su datac.pas y ponemos en el datamodule una zconnection (de Zeos) para acceder a una BD Postgres. Tenemos la precaución de hacer que se cree primero el datamodule y después la unit01. En la unit01 ponemos en el uses al datac.pas.

Mientras escribimos código no hay ningún problema. En las sugerencias del ide podemos seleccionar zconnection y sus propiedades sin problemas. Pero al compilar nos da el siguiente error:
"unit01.pas(37,35) Error: Only class methods, class properties and class variables can be accessed in class methods" en todas las líneas donde llamamos a zconnection1.

La llamada la hacemos tal que así:
TDataCenter.ZConnection1.Connected:=True; (por ejemplo)

El problema desaparece cuando colocamos zconnection1 en el formulario1 y entonces lo llamamos: ZConnection1.Connected:=True;
Pero claro: si hacemos una aplicación con infinidad de conexiones, sql, queries, etc. será un follón poner todo eso en el form1, cuando precisamente los datamodules están para eso.

Aclarar que venimos de delphi7, por si eso aporta algo.

¿Alguna solución?

Gracias y un saludo.
  • 0

#2 jdepaz

jdepaz

    Advanced Member

  • Miembros
  • PipPipPip
  • 264 posts
  • LocationMedellín Colombia

Posted 15 October 2014 - 02:09 PM

Hola

¿Podrías describir cómo haces la carga de los data modules?, específicamente el que tiene  y abre el ZConnection


Saludos
  • 0

#3 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2137 posts

Posted 15 October 2014 - 07:25 PM

Que tiene en la propiedad name el DataModule? Porque me llama la atención ese nombre de TDataCenter, me suena al nombre de una clase y no al nombre de un objeto de la clase, la llamada debería ser así :



delphi
  1. NombreDelModulo.ZConnection1.Connected:=True  //(NombreDelModulo es lo que hay en la propiedad name del módulo)



Saludos.

  • 0

#4 AngelF

AngelF

    Advanced Member

  • Miembros
  • PipPipPip
  • 100 posts
  • LocationValencia - España

Posted 16 October 2014 - 07:32 AM

Hola.

Wilson, era justo eso. Lo estaba llamando mal. Ha sido poner el nombre del datamodule y ahora funciona perfecto.

Jdepaz: ¿A qué te refieres con cargar el data module? Que yo sepa no lo cargo, simplemente pongo la unit en el uses y lo llamo.

DataCenter.ZConnection1.Connected:=True; <-- Ahora sí funciona. Antes ponía TDataCenter.Zconnection y no funcionaba.

Gracias a todos.
  • 0




IP.Board spam blocked by CleanTalk.