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 13-05-2011
J.Slann J.Slann is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 18
Poder: 0
J.Slann Va por buen camino
Problema creando instancias

Buenas voy a intentar explicar mi problema a ver si se me entiende.

Digamos que creo varias instancias de una clase propia de la siguiente manera:

Código:
instancia1:= TMiclase.Create;
instancia2:= TMiclase.Create;
instancia3:= TMiclase.Create;
TMiclase tiene un procedimiento llamado TMiclase.procedure pero ese procedimiento lo ejecuto a través de (librerias pascal script)

Código:
Sender.AddMethod(Self,@TMiclase.procedure.add,'function add(a,b:integer):integer;');
El código de TMiclase.procedure sería algo así:

Código:
procedure TMiclase.procedure
begin
   variable.otro_procedimiento; // Esto ejecuta otro procedure
end;
El problema es que así no me funciona porque no tiene datos en variable (antes de llamar a este procedimiento he hecho un variable:=loquesea).

Lo que creo que me pasa es que debido al usar
Código:
Sender.AddMethod(Self,@TMiclase.procedure.add,'function add(a,b:integer):integer;');
creo que el programa ejecuta el codigo de la clase, cuando lo que quiero es que lo ejecute la instancia que le toque.
Intento explicarme mejor. Al usar eso se ejecutan las lineas de codigo de TMiClase, yo quiero que lo ejecute cada instancia porque cambiará según la variable de cada instancia, pero usando lo de arriba las variables estan en nil.

Resumiendo lo que me gustaria conseguir es esto
Código:
Sender.AddMethod(Self,Direccion instancia1.procedure.add,'function add(a,b:integer):integer;');
¿Como consigo la direccion de la instancia? Debo meter la direccion ahí pero no se como conseguirla (puntero).

Saludos y gracias
Responder Con Cita
  #2  
Antiguo 13-05-2011
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Me imagino que tienes que usar la variable en lugar de la clase:

Código Delphi [-]
Sender.AddMethod(Self, @instancia1.procedure.add, 'function add(a,b:integer):integer;');


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #3  
Antiguo 13-05-2011
J.Slann J.Slann is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 18
Poder: 0
J.Slann Va por buen camino
Gracias por contestar que rápido.

Justo es eso lo que quiero pero no puedo hacerlo así me da un error de compilacion: variable required

Saludos
Responder Con Cita
  #4  
Antiguo 14-05-2011
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

¿Y cuales son los parámetros que recibe el método AddMethod?


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #5  
Antiguo 14-05-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
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
Me resulta algo extraño que el compilador te permita la palabra "procedure" como identificador.

Quizá sea conveniente que nos pongas un ejemplo más real, para así entender mejor la situación y buscar una forma de resolverlo.

NOTA: Debo decir que no conozco la biblioteca Pascal Script, y puede que sea el caso también de muchos compañeros, así que dar un poco de contexto sobre qué hace esa biblioteca y para qué la usas no estaría mal.

Un saludo.

Al González.
Responder Con Cita
  #6  
Antiguo 14-05-2011
LoPiTaL LoPiTaL is offline
Miembro
 
Registrado: abr 2009
Posts: 168
Poder: 16
LoPiTaL Va por buen camino
Y si el procedimiento "procedure" (también opino que deberías cambiarle el nombre) es realmente un procedure, ¿cómo no te da error al compilar en la siguiente línea?
TMiclase.procedure.add

Si procedure no devuelve nada, no puedes ejecutar un método llamado add de la nada...

Un saludo,
LoPiTaL
Responder Con Cita
  #7  
Antiguo 15-05-2011
J.Slann J.Slann is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 18
Poder: 0
J.Slann Va por buen camino
No os preocupeis por el nombre era un ejemplo.

Estoy usando RemObjects Pascal script, el problema que tengo ahora es que no se que hacen exactamente esas funciones y me gustaria que me dierais informacion sobre algun tutorial o como leches se puede añadir la ayuda de pascal script a delphi7 porque el software existente ahora para incorporar la ayuda a delphi, no acepta delphi7 entonces no consigo ver que hace cada funcion.

Basicamente pascal scripts te permite crear scripts de programacion. Mi aplicacion abre diferentes editores de codigo, donde se programan otras aplicaciones.

Gracias por la ayuda, primero me gustaria ver la ayuda de pascal script para tirar un poco por mi cuenta y luego os pongo el ejemplo cuando ya tenga claro que falla y porque.
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
Problema creando una libreria. Suriu OOP 4 03-11-2010 22:49:47
Problema con limite de instancias de objetos (TBitBtn) nuk3zito OOP 31 08-12-2008 22:07:20
Problema Creando un Form Dinamico Juanitol Varios 5 15-11-2007 13:54:28
Problema creando XML PaCmAn72 Internet 2 15-05-2007 14:56:33
Problema con RaveReports (multiples instancias) az_jazo Varios 2 24-05-2006 17:55:03


La franja horaria es GMT +2. Ahora son las 12:41:17.


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