Ir al contenido


Foto

Use Unit no funciona


  • Por favor identifícate para responder
5 respuestas en este tema

#1 Diego827

Diego827

    Member

  • Miembros
  • PipPip
  • 30 mensajes

Escrito 04 noviembre 2012 - 02:25

Hola amigos de Delphi Access:

Tengo un problema que no logro resolver.

Este es el cuadro:

Tengo una aplicacion VCL application/Stand Alone Server de UniGui en RAD Studio XE (trabajo en c++ builder). En el UniForm1 (main.cpp) coloqué componentes y todo el rollo, lo corrí y perfecto tanto en el explorador web como en el escritorio de windows. Cree un nuevo form: File->New->Other->UniGui for c++ builder-> form.

Ahora para poder llamar al segundo form (que se llama UniForm2 por default) abro File->Use Unit y selecciono el indicado. En un boton (unigui por supuesto) coloco la instruccion:
[cpp]UniForm2->Show();[/cpp]
Sin embargo aquí ya hay algo extraño; primero cuando coloco el puntero "->" que es equivalente en Delphi al punto "." no me muestra las opciones del form... y cuando lo corro me dice:
[cpp][BCC32 Error] Main.cpp(43): E2288 Pointer to structure required on left side of -> or ->*
  Full parser context
    Main.cpp(39): parsing: void _fastcall TMainForm::UniButton1Click(TObject *)[/cpp]

Ayúdenme por favor  8o|
  • 0

#2 Diego827

Diego827

    Member

  • Miembros
  • PipPip
  • 30 mensajes

Escrito 04 noviembre 2012 - 05:51

Es exactamente lo mismo que:

http://www.delphiacc...64987/#msg64987

Pero no logro hacerlo porque no entiendo la solución que el provee.
  • 0

#3 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 04 noviembre 2012 - 06:09

¿Solo tienes ese error? ¿No te dice que el tipo de UniForm2 es desconocido?

El error que mencionas quiere decir que UniForm2 no es un puntero y que -> ó ->* requiere a su izquierda un puntero.

Asegurate de que tu Form se llama UniForm2 ¿o es el nombre de la Unit?

Asegurate de que al comienzo de tu archivo Unit1 (si así se llama)  tienes:
[cpp]
# include "unit2.h" //si se llama así
[/cpp]


Saludos.
  • 0

#4 Diego827

Diego827

    Member

  • Miembros
  • PipPip
  • 30 mensajes

Escrito 04 noviembre 2012 - 06:58

Hola estimado escafandra:

Si, eso ya lo hice. Pero no funciona. No se como realizar la función Show() en c++ builder con UNIGUI, ya que ni siquiera me reconoce el form.

Sin UNIGUI es normal, pero con UNIGUI no reconoce los demás form, aún incluyéndolos. Y así como dice el comentario 1, hay que agregar código pero es algo más que el #include.

Estoy algo decepcionado de esas librerías  :cry:
  • 0

#5 Diego827

Diego827

    Member

  • Miembros
  • PipPip
  • 30 mensajes

Escrito 04 noviembre 2012 - 07:00

Por cierto y como comentario: probé en Delphi y voila! funcio OK

Adjunto imagen:

Supongamos que estamos en la form1, si colocamos esto: "form1->", el IDE nos muestra un listado de propiedades y además de funciones. Pero en este caso no lo hace aún colocando el nombre propio del form (ver imagen).

Definitivo debe ser un error en la versión de c++ builder de unigui.

Si alguien puede ayudarme le voy a agradecer mucho. Adjunto el código fuente de las pruebas.

Para c++ builder hay que DESACTIVAR las opciones:

Dynamic RTL Linker
Build with runtime packages

Archivos adjuntos


  • 0

#6 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 05 noviembre 2012 - 02:29

La versión que uso de Builder no es compatible con UNIGUI, así que no puedo probar :(, de todas formas los fuentes no aparecen subidos :|.

Prueba de esta manera por si el formulario no es autocreado:
[cpp]
TUniForm2 *UniForm2 = new UniForm2(this);
UniForm2->Show();
delete UniForm2;
[/cpp]


Saludos.
  • 0




IP.Board spam blocked by CleanTalk.