Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-02-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
Hola...

No se bien como se llama un método heredado en C++ Builder, pero creo que ahí está tu problema...

En Delphi se haría así:

Código Delphi [-]
constructor Create(AOwner: TComponent; X: Integer);
begin
  inherited Create(AOwner); // Si te fijas, usamos la palabra reservada inherited
  // Demás código de construcción...
end;


Saludos...
Responder Con Cita
  #2  
Antiguo 07-02-2008
Mialom Mialom is offline
Registrado
 
Registrado: feb 2008
Ubicación: España
Posts: 5
Poder: 0
Mialom Va por buen camino
Solución a medias

Buenos dias,

ya he encontrado una solución para pasar los parámetros al constructor del formulario, la cuestion es que el constructor se embucla hasta que se desborda la pila (Stack Overflow) debido a que el parámetro que le paso es de tipo Entero, he probado a pasarle parámetros de otro tipo de datos como AnsiString, String, TDateTime y Float y funciona perfectamente. De momento le pasaré el parametro como cadena de texto y ya dentro del formulario nuevo le haré un cast a entero, pero no he conseguido averiguar el porque de que no admita parámetros de valor entero.

Muchas gracias por vuestra ayuda, y si averiguo el porque ya os lo contaré.
Un saludo
Responder Con Cita
  #3  
Antiguo 15-02-2008
Antonioveneroso Antonioveneroso is offline
Miembro
 
Registrado: feb 2008
Posts: 30
Poder: 0
Antonioveneroso Va por buen camino
Creo que en una ocasión hice algo así, pero en lugar de pasarle un int le pasaba un short... necesariamente debe ser int?
Responder Con Cita
  #4  
Antiguo 15-02-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Solución

Creo que la solución es mucho mas simple y que te permite pasar cualquier tipo de parámetro. Efectivamente pasa por conocer el funcionamiento de Builder con las VCL.

Existen dos tipos de formulario, los autocreados, por defecto, y los disponibles. Al definir un formulario, Builder lo asume como autocreado, de forma que no tenemos que llamar explícitamente al constructor para crearlo. Esto choca al programador en C++.

En opciones del proyecto, podemos pasar un formulario autocreado a disponible, que quiere decir "no esta creado, solo definido y por tanto disponible"

Este tipo, disponible, se comporta como cualquier objeto definido en C++. De hecho y según tu código, es así como tu quieres usarlo puesto que lo creas con un new y luego lo destruyes.

Te aseguro que si lo defines como disponible, podrás pasar un int en el constructor.

Saludos.

Última edición por escafandra fecha: 17-02-2008 a las 22:11:28.
Responder Con Cita
  #5  
Antiguo 16-02-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Pregunta de diseño:

¿es realmente necesario ese parámetro para la construcción de la ventana?

- Si, sigue como vas.
- No, crea una propiedad y la asignas después de crear la ventana.

Ejemplo de un ProgressBar: podría pensarse que los límites (Max y Min) formase parte del constructor del componente, pero si te fijas, son propiedades.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 17-02-2008
Mialom Mialom is offline
Registrado
 
Registrado: feb 2008
Ubicación: España
Posts: 5
Poder: 0
Mialom Va por buen camino
Hola a todos,

el formulario no se crea automaticamente al ejecutar la aplicacion, ya que solo dejo como formularios autocreados el main form.
Respecto a si con un short da error la verdad es que no lo he probado pero es una buena idea aunque creo que pudiera dar el mismo resultado.

De todas formas muchas gracias por las ideas, siempre entre todos sacaremos algo mas en claro que una sola mente.

Un saludo
Responder Con Cita
  #7  
Antiguo 18-02-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por Mialom Ver Mensaje
Hola a todos,

el formulario no se crea automaticamente al ejecutar la aplicacion, ya que solo dejo como formularios autocreados el main form.
Respecto a si con un short da error la verdad es que no lo he probado pero es una buena idea aunque creo que pudiera dar el mismo resultado.

De todas formas muchas gracias por las ideas, siempre entre todos sacaremos algo mas en claro que una sola mente.

Un saludo
Pues... Yo soy muy aficionado a pasar parámetros en los constructores. Nunca he tenido ese problema. Al ver tu caso hice el experimento, como comentabas. Y pensando en el problema de los autocreados, deje el form que iba a recibir el parámetro añadido (int) como autocreado. Entonces apareció el error que tu mencionas. Lo cambié a disponible y desapareció el error.

De todas formas tu hablas de un Form1 (TForm1(TComponent* Owner, int x)), este por defecto, y según los denomina Builder, es el mainForm. Te comento esto porque ese siempre es autocreado. En este caso no tiene sentido el paso de parámetros en el constructor. Yo siempre les doy otros nombres mas personales...

Repito, a mi con los formularios disponibles, no me pasa el error "Stack Overflow".

Repasa toda la configuración de tu proyecto....

Saludos.
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
Stack overflow al reabrir una tabla jzginez Conexión con bases de datos 1 24-04-2007 16:52:53
Stack Overflow agonzalez Varios 5 08-12-2006 22:26:46
Stack Overflow Mariana Varios 14 30-10-2003 11:37:47
Pasar un parametro en la llamada a un form apicito OOP 17 13-08-2003 12:30:45


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


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